angularjs防止ng-option自动选择最后一个值

时间:2018-10-10 21:22:20

标签: javascript angularjs angularjs-ng-options

我在这里遇到了angularjs的问题,标题是自动解释的,但是我的问题是...

我有两个选择元素,当我在第一个选择一个选项时,ng-change进行Ajax调用,并使用响应填充第二个选择。但是,当ajax请求完成时,$ scope。$ apply()更新所有内容,并填充第二个select元素,但默认情况下始终选择最后一个项目。为什么?如何预防呢?

疯狂的是,我还有很多其他选择元素,都是通过Ajax填充的,而这个问题仅在一个特定的选择中才会发生。

我的HTML

<select class="form-control" ng-model="id_professional"
        ng-options="professional.ID as professional.NAME for professional in listProfessionals">
   <option value="">Select...</option>
</select>

$ scope.listProfessionals

[
{ID: "700003655490405", NAME: "Jhon"},
{ID: "700003655490406", NAME: "Lucas"},
{ID: "700003655490407", NAME: "James"},
{ID: "700003655490408", NAME: "Michael"}
]

填充列表时始终选择“ Michael”。

我已经尝试了以下解决方案,但没有用。 Why dropdown selecting last value

1 个答案:

答案 0 :(得分:1)

所以,我已经找出导致该错误的原因,可耻的是,这只是错别字,是我的错。醒来的两个晚上真让我大吃一惊。

问题是Ajax响应具有一个名为IDN的属性,而不是像professional.ID(未定义)这样的ID,在ng-options中输入professional.IDN解决了我的问题。

对不起。还是谢谢你!

<select class="form-control" ng-model="id_professional"
        ng-options="professional.IDN as professional.NAME for professional in listProfessionals">
   <option value="">Select...</option>
</select>