AngularJs选择项目不在第一次选择时设置正确的文本

时间:2014-07-04 11:23:42

标签: angularjs

我有一个选择框如下:

<select id="Supplier" class="form-control" ng-model="vm.SelectedSupplier" ng-options="S.Name for S in vm.Suppliers"></select>

当页面加载时,选择框中的选项为空白。到现在为止还挺好。但是,当我选择其中一个选项时,无论其索引如何,选择框中的文本值都将设置为第一个选项,但是,由ng-model绑定的模型将设置为正确的值。

这仅在第一次选择尝试时发生,后续选择尝试使选择框中的文本与所选索引处的供应商名称匹配。

我希望这有意义,任何想法?

谢谢,

1 个答案:

答案 0 :(得分:1)

关于pkozlowski,如果在传递给ng-options的一组选项中不存在ng-model,则生成空选项并添加到select。这样可以防止意外的模型选择:AngularJS可以看到初始模型在选项集中未定义或不定义,并且不想自己决定模型值。

请看这里:http://plnkr.co/edit/imjLXBmGpZReZ63KNWlg?p=preview 只需添加默认选项以在示例中选择,这将解决您的问题

<select id="Supplier" class="form-control" ng-model="vm.SelectedSupplier" ng-options="S.Name for S in vm.Suppliers">
          <option style="display:none" value=""></option>  //<-here

       </select>