Javascript ngModelOptions在指令中不起作用

Javascript ngModelOptions在指令中不起作用,javascript,angularjs,angularjs-directive,angular-ngmodel,Javascript,Angularjs,Angularjs Directive,Angular Ngmodel,我在HTML中定义了指令myDirective,如下所示: <input id="myid" ng-model="myModel" value="{{myModel}}" my-directive dirvalue="3" min="0.5" spinner step="0.2" ng-disabled=" !someFunction()"> 我已经调试了代码,ngModelController.$options填充得非常好。 但我没有得到必要的行为,也就是说,黛博斯不工作 请解释

我在HTML中定义了指令
myDirective
,如下所示:

<input id="myid" ng-model="myModel" value="{{myModel}}" my-directive dirvalue="3" min="0.5" spinner step="0.2" ng-disabled=" !someFunction()">
我已经调试了代码,
ngModelController.$options
填充得非常好。 但我没有得到必要的行为,也就是说,黛博斯不工作


请解释我做错了什么

您应该将链接函数重写为

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秒后更新

但是,如果您还想在
默认
触发器触发3秒后更新,那么您应该这样做

ngModelController.$options = {
    updateOn: 'blur',
    updateOnDefault: true,
    debounce: {
        'blur': 3000,
        'default': 3000
    }
};

顺便问一下,您使用的是哪个版本的angular?您需要1.3.x或更高版本。@VVK-基本上,如果您想在默认触发器上更新它,可以将其设置为
true
。如果不是,则将其设置为
false
。还是我做错了什么?干杯@potatopeelings版本是1.2.13,但我单独添加了ngmodelOptions。在html:ng model options=“{updateOn:'default blur',debounce:{'default':2000,'blur':0}”中使用时,它可以正常工作
ngModelController.$options = {
    updateOn: 'blur',
    updateOnDefault: true,
    debounce: {
        'blur': 3000,
        'default': 3000
    }
};