AngularJS: ng-model-options 在提交时绑定表单值不适用于多选

AngularJS: ng-model-options bind form value on Submit doesn't work with multiple selections

我有一个带有三个单选按钮的表单,并在单击提交时延迟绑定到模型。现场示例 here

这在快乐路径场景中工作得很好:

  1. Select radio1 > 单击 submit 结果为 radio1

但在以下情况下它会中断:

  1. Select radio1 > 点击提交 > 给出 radio1
  2. 现在 select radio2 > 然后 radio3 > 然后单击 submit
  3. 这给出 radio2 而不是 radio3 作为绑定值。

基本上,如果我对单选组进行多项更改,只会捕获 第一个 更改。我如何更改此行为以反映 last 更改?

您必须在 ngModelOptions 中使用 allowInvalid : true 来正确验证,而不是将模型设置为未定义的默认行为。参见 documentation

<input type="radio" name="radio" value="radio1" ng-model="radioValue" ng-model-options="{updateOn: 'submit', allowInvalid : true}" >
      <input type="radio" name="radio" value="radio2" ng-model="radioValue" ng-model-options="{updateOn: 'submit', allowInvalid : true}">
      <input type="radio" name="radio" value="radio3" ng-model="radioValue" ng-model-options="{updateOn: 'submit', allowInvalid : true}">

工作的 Plunker Link