簡體   English   中英

AngularJS - $編譯一個以對象作為屬性參數的指令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM