Angular指令控制器——等待属性的赋值/求值
Angular directive controller - wait for assignment/evaluation of attribute
假设我有以下标签:
<input name="username" type="text" ng-model="vm.username" available="{{vm.blarg}}">
让我们说blarg
被设置为"foo"(从页面的控制器-而不是从下面的指令)。
和我有以下指令:
angular.module('app')
.directive('available', RegistrationCtrl);
function RegistrationCtrl() {
var directive = {
restrict: 'A',
require: 'ngModel',
scope: {
ngModel: '=ngModel'
},
link: function(scope, element, attrs, ngModel) {
console.log("link: " + attrs.available); //output: "foo"
},
controller: ExampleController,
controllerAs: 'vm',
bindToController: true
};
return directive;
}
function ExampleController($attrs) {
console.log("controller:" + $attrs.available); //output: "{{vm.blarg}}"
}
我的问题:是否有任何方法可以使控制器(指令)等待,直到所有属性被angular解析(评估)的那一刻:
{{vm.blarg}} -> "foo"
换句话说,我希望指令只在第一个摘要循环完成后运行。
根据angular文档,最佳实践是:
当你想把一个API暴露给其他指令时,可以使用controller。否则使用link
在你的指令中,如果没有API要暴露,那么不要使用controller。你所有的逻辑都在链接函数中,在这里你可以看到你的作用域属性的变化。
相关文章:
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- HEAD中LINK和STYLE元素的求值顺序
- 聚合物绑定条件属性和求值属性
- javascript/jquery-避免重复对条件求值
- 为什么-0===0的求值结果为true
- 为什么下面给出的表达式在javascript中的求值结果为30
- 如何从不同范围外的元素属性中获取求值表达式
- myFunc=function(){}应该立即在Javascript中求值
- 针对常量求值的角度表达式
- AngularJS-在$event.stopPropagation之后停止ng-click表达式求值
- Javascript:附加字符串中的事件,闭包中的变量求值
- 如何使用Angular 1.5组件将属性求值为字符串,这是一个自定义函数
- AngularJS表达式未求值
- 为什么我的JS"如果“;语句的求值结果总是为false
- eval函数-求值顺序
- LESS 文件中的 JavaScript 求值错误
- 如何从传递给 CasperJS 中求值的函数调用另一个函数
- 是否(!value)对所有错误值求值为True
- JavaScript中包含两个赋值操作符的复合表达式的求值过程
- Angular指令控制器——等待属性的赋值/求值