【发布时间】:2015-01-13 23:36:31
【问题描述】:
首先,这里是code:
app.controller('MainCtrl', function($scope) {
$scope.test="Hello!";
$scope.updateFlag = false;
function updateFunc(){
$scope.updateFlag = true;
}
$scope.updateFunc = updateFunc;
});
app.directive('dir1', function(){
return {
scope:{
updateFunc:'='
},
link: function(scope,element,attr,ctrl){
element.bind('click', scope.updateFunc);
}
}
});
app.directive('dir2', function(){
return {
template: '{{privateVal}}',
scope:{
updateFlag:'='
},
link: function(scope,element,attr,ctrl){
scope.privateVal= "Not working!";
scope.$watch(scope.updateFlag, function(newval, oldval){
alert("watch triggered");
if (newval===true){
scope.privateVal = "Worked!!";
}
})
}
}
});
我有 2 个指令,1 个带有 2 路绑定到全局函数,另一个正在监视全局函数正在更改的全局变量。但是,不知何故,当全局函数被调用时,我的监视函数没有被触发。非常感谢任何帮助。
谢谢,
【问题讨论】:
-
尝试用返回
scope.updateFlag的函数替换$watch的第一个参数。或者改成字符串。 -
刚刚做了,还是不行
-
如果您有一些用于指令的全局模块 - 不要忘记将您的 Directive 类添加到模块的导出/声明部分
标签: javascript angularjs angularjs-directive angularjs-scope