Angular ng-options在加载时将原始设置为false

时间:2015-10-30 18:01:55

标签: javascript angularjs ng-options

以下关于"多个"的组合。 " as" as"在选项表达式中,当表单首次加载时,ng-options将pristine设置为false。这是一个有角度的错误吗?有没有人知道一种解决方法?

http://plnkr.co/edit/c9ZIgiiisntkJJBeFFdy

<select multiple name="mySelect" id="mySelect"
      ng-options="option.id as option.name for option in data.availableOptions"
      ng-model="data.selectedOption"></select>

2 个答案:

答案 0 :(得分:0)

设置data.selectedOption时,angular选择选项并将pristine设置为false。

您可以使用。$ setPristine()方法手动设置true。

答案 1 :(得分:0)

这是一个有角色的错误。

  是的,这看起来像个bug。你不需要选择,但你需要多个。它与我们有关,检查选项更改后视图/模型是否已更改。在这种情况下,我们使用新选择调用$ setViewValue,这会触发对$ setDirty的调用。   作为一种解决方法,您可以添加一个在ngOptions之后运行的指令,该指令在初始加载后强制$ pristine = true和$ dirty = false。

https://github.com/angular/angular.js/issues/13211