我在我的一个控制器中声明了父范围内的变量。
$ scope.myValue = true;
该值很容易在custom指令中获取。但是当在父控制器中更新值时,它不会反映在自定义指令中。
我的问题是我们怎样才能让指令知道" myValue"改变了吗?
如果信息不充分,请告诉我。
答案 0 :(得分:1)
在父控制器中,在更改变量值后,您可以广播此类事件 -
$scope.$broadcast('valueChanged', {
val: $scope.myValue // pass in any object you want
});
然后在您的子控制器中,像 -
一样处理它$scope.$on('valueChanged', function (event, data) {
console.log(data); // get the same object here
});
$broadcast
会触发事件,因此这适用于您的情况。
答案 1 :(得分:1)
您可以在指令中查看值,如下所示:
app.directive('directive', function() {
return {
scope: true,
link: function($scope){
$scope.$watch('$parent.myValue', function(newVal){
console.log(newVal);
});
}
};
});