【发布时间】:2015-09-09 13:39:09
【问题描述】:
我正在 angularJS 中创建一个将替换元素的指令。我在父作用域中有一个绑定到元素的变量。
我想在更改父范围变量值时更新指令范围变量。
元素如下所示
<my-element attr-xyz="scope_variable"></myelement>
当我编写如下指令时,它会在范围变量更新时给出更新的值
.directive('myElement', function(){
return function(scope, elem, attr){
scope.$watch(attr.attrXyz, function(value) {
console.log(value);
});
}
});
但是当我编写如下相同的代码时,它会给出未定义的值
return {
scope: {attrXyz: '@'},
restrict: 'E',
replace: true,
link: function(scope, element, attr, controller){
scope.$watch(attr.attrXyz, function(value){
console.log('value = '+value);
});
}
}
【问题讨论】:
-
更好的方法是将
link: function替换为controller:function
标签: javascript angularjs mean