我有一个像这样的选择框:
<select class="form-control"
ng-model="contactName"
ng-change="testFun(contactName)"
ng-options="contact.Id as contact.Name + ' ' + contact.Surname for contact in company.items.contacts"
ng-selected="$scope.contactId === contact.Id">
</select>
其中$scope.contactId = 14151,contact.Id = 14151
但是选择框仍然没有选择正确的人,并且仍然显示为空白。
我不知道我做错了什么。
编辑
<select class="form-control"
ng-model="contactName"
ng-change="testFun(contactName)"
ng-options="contact.Id as contact.Name + ' ' + contact.Surname + ' id:' + contact.Id for contact in company.items.contacts"
ng-selected="contactId == contact.Id">
</select>
<pre>
contactId: {{contactId}}
</pre>
结果如下,这也证实了ID是相同的:
盒子里还是一片空白
2条答案
按热度按时间2j4z5cfb1#
AngularJS docs:
注意:ngSelected不与select和ngModel指令交互,它只设置元素上的selected属性。如果在选择上使用ngModel,则不应在选项上使用ngSelected,因为ngModel将设置选择值和所选选项。
也就是说,您应该按照@Noman的建议使用
ng-init="contactName = contactId"
,它使用contactId
初始化contactName
变量,随后选择正确的选项。zd287kbt2#
使用ng-init就可以了。你不能在html中使用
$scope
。删除$scope
将起作用。ngSelected不能与ngOptions一起使用,您必须使用
ng-init
。