在AngularJS指令中观察函数的值
Watching the value of function in an AngularJS directive
是否有一种方法可以观察AngularJS指令中函数表达式的值变化?我有以下HTML和JavaScript,模板中{{editable()}}
的插值显示值为true,而在Chrome中检查HTML元素显示contenteditable
为false。
有什么建议,我怎么能看到这个函数的值的变化,并相应地更新元素attr ?或者是否有更好的方法来实现这一点?(我仍然想计算这个函数)
HTML:<h4 editable="account.hasRole('ROLE_ADMIN')" content="doc.heading"></h4>
Javascript: mod
.directive(
'editable',
function() {
return {
restrict : 'A',
template : '<button class="btn pull-right"><i class="icon-pencil"></i></button>{{content}} ({{editable()}})',
scope : {
'content' : '=',
'editable' : '&'
},
link : function(scope, element, attrs) {
scope.$watch('editable', function(newValue) {
element.attr('contenteditable', newValue());
});
}
};
});
试着把手表放在'editable()'
而不是'editable'
上
解释:需要这样做的原因是'&'
指向属性表达式动态生成的函数包装器,而不是表达式本身。这个特殊的包装函数返回account.hasRole('ROLE_ADMIN')
的值。
我也希望这样做:
scope.$watch(function () {
return scope.editable();
}, function (val) {
// ...
});
相关文章:
- 为什么prototypjs观察到回调函数有绑定
- 如何在Mobx中执行可观察函数
- 在ko.applyBindings(..)中执行Knockout js订阅函数(用于可观察对象)
- Angular2/Typescript:从链接可观察函数访问实例变量
- angularjs如何为函数设置观察程序
- Javascript 错误: $(..).观察不是一个函数
- 自定义绑定到可观察数组,不调用更新函数
- 原型js观察函数抛出错误
- 从挖空可观察数组中调用函数
- Angular2 可观察 - 等待多个函数调用,然后再继续
- Rxjs 包装来自 D3 的其他库函数(可观察)
- 将通过原型计算的可观察对象添加到构造函数中
- 修改可观察数组时如何触发函数
- 重新调用返回 Rxjs 可观察的函数
- 如何将操作函数添加到从可观察量订阅返回的一次性
- 可观察到的敲除不是一个函数
- 如何使用WatchPosition()函数Geolocation来观察其他坐标
- 试图转换/映射我的JSON数组中的对象到我的KO可观察函数
- Javascript运行时间函数观察者
- 函数观察首选项的更改会针对每个更改触发 3 次