【发布时间】:2016-07-14 06:31:17
【问题描述】:
我有一个自定义指令,可以根据他的值将视图值添加类更改为input:text。
restrict: 'A',
require : 'ngModel',
link : function(scope, element, attrs, modelCtrl) {
function apply(input) {
// Simplified ..
if ( input!=='Ooops' && isNaN(parseFloat(input) ) {
modelCtrl.$setViewValue('Ooops');
element.addClass('is-nan');
return undefined;
}
}
modelCtrl.$parsers.push(apply);
}
当我编辑值时它工作正常。但是,当元素由 Angular 绑定时,我想应用相同的逻辑,以便设置类和视图值。
基本上我想在指令链接时调用apply。所以我尝试在link 函数的末尾添加apply(element.val()),但element.val() 始终为空。
我认为我应该使用另一个生命周期挂钩来调用此方法,但找不到它。一种可能的解决方案是使用compile 而不是link,但由于我不进行DOM 转换,因此不需要这样做。
我试过modelCtrl.$observe('ngModel', ..),但输入值又是空的。
链接指令时如何应用视图逻辑?
谢谢
【问题讨论】:
标签: angularjs angularjs-directive angularjs-ng-model