我有两个指令,一个用于 ng-grid,另一个用于分页,当我单击一个指令中的页码时,应该根据该指令更改 ng-grid 指令,我对此有何想法。
问问题
882 次
1 回答
0
有很多方法可以实现:例如:
第一个解决方案
您可以在指令之间共享数据:
<directive-one attribute="value" other-attribute="value2" shared-variable="yourData">
<directive-two shared-variable="yourData">
并$watch
在该值的第一个指令中设置
scope.$watch('yourData',function(newVal,oldVal){ //your logic called after change });
第二种解决方案
您可以使用事件:
app.directive('first',function(){
return{
restrict: 'E',
template: 'Im first directive!',
scope: true,
link:function(scope,elem,attrs){
scope.$on('event',function(event,args){
alert(args);
});
}
}
});
app.directive('second',function($rootScope){
return{
restrict: 'E',
template: 'Im second directive! <button ng-click="click()">click me!</button>',
scope: true,
link:function(scope,elem,attrs){
scope.click = function(){
$rootScope.$broadcast('event','hello!');
};
}
}
});
事件由 发送$rootScope.$broadcast('event','hello!');
。这意味着事件由您的根范围向下发送到子范围。http://jsfiddle.net/aartek/fJs69/
于 2014-07-16T11:17:33.017 回答