如何在自定义指令中设置ng-model-options?

eja*_*ain 17 angularjs angularjs-directive

设置controller.$optionslink功能似乎对防抖动工作模糊事件:

controller.$options = {
  updateOn : 'blur',
  debounce : 3000
};
Run Code Online (Sandbox Code Playgroud)

...但是如果我对默认事件尝试相同,则模型永远不会更新:

controller.$options = {
  updateOn : 'default',
  debounce : 3000
};
Run Code Online (Sandbox Code Playgroud)

当使用ng-model-options指令时,一切都按预期工作.

请参阅http://plnkr.co/edit/KLrSrs2Jw7pkoAUNRJDf?p=preview

eja*_*ain 18

查看ngModelOptions指令来源updateOn : 'default',您需要设置,而不是设置controller.$options.updateOnDefault = true;


Xav*_*aut 18

对于你的情况,你可以尝试

ngModelController.$options = {
    updateOn: 'blur',
    updateOnDefault: true,
    debounce: {
      'blur': 2000,
      'default': 3000
    }
  };
Run Code Online (Sandbox Code Playgroud)

但现在(ng1.6 +)你必须这样做(在这里,这里这里阅读更多):

ngModelController.$overrideModelOptions({
    updateOn: 'blur',
    updateOn: 'default',
    debounce: {
      'blur': 2000,
      'default': 3000
    }
});
Run Code Online (Sandbox Code Playgroud)