我无法将范围对象从一个控制器传递到嵌套指令的控制器。 我在另一个指令(父)中有一个指令(子),父指令和它的控制器如下所示:
myApp.directive('parent', function(){
return {
restrict : 'E',
scope:false,
controller: 'parentController',
templateUrl : '/templates/parent.html',
};
});
myApp.controller('parentController', ['$scope',
function Controller($scope) {
$scope.monitors=[monitor1,monitor2,monitor3]; //in reality these are JSON objects
}
我的'parent.html'模板如下所示:
<div>
<!-- Other things go here -->
<div ng-repeat='monitor in monitors'>
<child monitorData='monitor'></child>
</div>
</div>
child指令及其控制器如下所示:
myApp.directive('child', function(){
return {
restrict : 'E',
scope:{
monitorData:'=',
},
bindToController:true,
controller: 'childController',
templateUrl : '/templates/child.html',
};
});
myApp.controller('childController', ['$scope', function ChildController($scope) {
var vm=this;
console.log('instantiated childController');
console.log(vm);
}]);
控制台输出是:
instantiated childController
ChildController
monitorData : undefined
有什么想法吗?
答案 0 :(得分:0)
使用monitorData的监视器数据。
<div>
<!-- Other things go here -->
<div ng-repeat='monitor in monitors'>
<child monitor-Data='monitor'></child>
</div>
来自angular documentacion:注意:这些=范围内的attr属性 指令选项与指令名称一样被规范化。绑定 到&lt;中的属性div bind-to-this =“thing”&gt;,你要指定一个 绑定= bindToThis。