HTML:
<div ng-repeat="some repeat clause">
<my-div></my-div>
</div>
命令:
.directive('myDiv', function({
return {
controller: function($scope) {
$scope.$on('someEvent', function() {
console.log('siyou here');
});
}
}
}))
控制器:
$rootScope.$broadcast('someEvent'); // cannot trigger 'someEvent' in directive
问题: 如何从控制器触发指令中的"someEvent"?
谢谢!
在这种情况下不需要$broadcast
事件。您可以使用ng-ref
指令将属性传递到指令中,并随时触发指令的函数:
<my-div ng-ref="refs[index]"> </my-div>
还要检查官方文档中的示例:
https://docs.angularjs.org/api/ng/directive/ngRef