ngModelOptions在指令中不起作用
ngModelOptions not working in directive
我在HTML中定义了指令myDirective
,如下所示:
<input id="myid" ng-model="myModel" value="{{myModel}}" my-directive dirvalue="3" min="0.5" spinner step="0.2" ng-disabled=" !someFunction()">
指令:
myApp.directive('myDirective', ['InjectedService',
function (InjectedService) {
return {
require: 'ngModel',
restrict: 'A',
scope: {
dirvalue: "="
},
link: function (scope, element, attrs, ngModelController) {
if (ngModelController.$options === undefined || ngModelController.$options === null) {
ngModelController.$options = {
updateOn: 'blur',
debounce: 3000
};
}
}
}
}
]);
我已经调试了代码,ngModelController.$options
的填充非常好。但我没有得到必要的行为,也就是说,debounce不起作用!
请解释我做错了什么!
您应该将链接函数重写为
myApp.directive('myDirective', ['$compile','InjectedService',
function ($compile, InjectedService) {
return {
require: 'ngModel',
restrict: 'A',
scope: {
dirvalue: "="
},
priority: 1000,
compile: function compile(element, attrs) {
element.attr('ng-model-options', '{updateOn: 'default blur', debounce:{'default': 2000, 'blur': 0}}');
return {
pre: function preLink(scope, iElement, iAttrs, controller) { },
post: function postLink(scope, iElement, iAttrs, controller) {
$compile(iElement)(scope);
}
};
}
您现在拥有的应该可以工作,即模型将在模糊事件后3秒更新。
然而,如果你也想在default
触发后3秒更新,那么你应该进行
ngModelController.$options = {
updateOn: 'blur',
updateOnDefault: true,
debounce: {
'blur': 3000,
'default': 3000
}
};
相关文章:
- Angular指令在alertify setContent内容中不起作用
- AngularJS指令部分应用的函数don'不起作用
- Google Maps API OverlayView()在AngularJS指令中不起作用
- mouseover和mouseleave文本颜色更改在指令链接中不起作用
- 这段jquery代码在angular指令中不起作用
- Angular Filter在指令表达式中不起作用
- Angular UI Select2指令搜索功能不起作用
- 新的自定义角度指令不起作用
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- 滚动指令在Angular JS中不起作用
- 角度指令双向绑定不起作用
- Angular.JS自定义指令;不起作用
- 指令中选择输入的双向绑定不起作用
- ng中使用的指令包括dond'不起作用
- scope.$apply 是未定义的,在 scrolly 指令中不起作用
- AngularJS,自定义指令不起作用@ plnkr
- 指令的角度优先级不起作用
- Angular js指令使用控制器作为语法ng点击不起作用
- 指令链接中的绑定不起作用
- ng 路由不起作用指令