我在这里遇到了angularjs的问题,标题是自动解释的,但是我的问题是...
我有两个选择元素,当我在第一个选择一个选项时,ng-change进行Ajax调用,并使用响应填充第二个选择。但是,当ajax请求完成时,$ scope。$ apply()更新所有内容,并填充第二个select元素,但默认情况下始终选择最后一个项目。为什么?如何预防呢?
疯狂的是,我还有很多其他选择元素,都是通过Ajax填充的,而这个问题仅在一个特定的选择中才会发生。
<select class="form-control" ng-model="id_professional"
ng-options="professional.ID as professional.NAME for professional in listProfessionals">
<option value="">Select...</option>
</select>
[
{ID: "700003655490405", NAME: "Jhon"},
{ID: "700003655490406", NAME: "Lucas"},
{ID: "700003655490407", NAME: "James"},
{ID: "700003655490408", NAME: "Michael"}
]
填充列表时始终选择“ Michael”。
我已经尝试了以下解决方案,但没有用。 Why dropdown selecting last value
答案 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>