javascript :AngularJS:ng-selected不支持true语句

frebpwbc  于 2023-06-28  发布在  Java
关注(0)|答案(2)|浏览(150)

我有一个像这样的选择框:

<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是相同的:

盒子里还是一片空白

2j4z5cfb

2j4z5cfb1#

AngularJS docs
注意:ngSelected不与select和ngModel指令交互,它只设置元素上的selected属性。如果在选择上使用ngModel,则不应在选项上使用ngSelected,因为ngModel将设置选择值和所选选项。
也就是说,您应该按照@Noman的建议使用ng-init="contactName = contactId",它使用contactId初始化contactName变量,随后选择正确的选项。

zd287kbt

zd287kbt2#

使用ng-init就可以了。你不能在html中使用$scope。删除$scope将起作用。

<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-init="contactName = contactId" >
</select>

ngSelected不能与ngOptions一起使用,您必须使用ng-init

相关问题