![](/img/trans.png)
[英]AngularJS attribute directive. How to add another attribute directive on 'compile'
[英]AngularJS - $compile a Directive with an Object as an Attribute Parameter
當我使用$compile
創建和綁定指令時,我如何添加變量作為屬性? 變量是一個對象。
var data = {
name: 'Fred'
};
var dirCode = '<my-directive data-record="data"></my-directive>';
var el = $compile(dirCode)($scope);
$element.append(el);
而myDirective
會期待:
...
scope: {
record: '='
},
...
我試過了
`var dirCode = '<my-directive data-record="' + data + '"></my-directive>';`
相反也是。
這很簡單,只需創建新范圍並在其上設置數據屬性即可。
angular.module('app', []); angular .module('app') .directive('myDirective', function () { return { restrict: 'E', template: 'record = {{record}}', scope: { record: '=' }, link: function (scope) { console.log(scope.record); } }; }); angular .module('app') .directive('example', function ($compile) { return { restrict: 'E', link: function (scope, element) { var data = { name: 'Fred' }; var newScope = scope.$new(true); newScope.data = data; var dirCode = '<my-directive data-record="data"></my-directive>'; var el = $compile(dirCode)(newScope); element.append(el); } }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.js"></script> <div ng-app="app"> <example></example> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.