angularjs ngOptions 有 2 个对象 属性 作为标签并通过 Id 进行跟踪

angularjs ngOptions having 2 object property as label and tracking by Id

好的,我有一个对象,其中包含一些名为 professionals 的对象 结构看起来像

lstProf=[{firstName:'tony',lastName:'bob',id:188},{...},{...}];

我希望我的 select 字段显示名字 + 姓氏并按 ID 进行跟踪

不知何故这不起作用:

    <select class="input-antoine section2-control"  
    data-ng-options="prof.id as prof.firstName +' 
     '+prof.lastName for prof in lstProfs track by prof.id"
    data-ng-model="patient.treatingProfessionnal" 
    data-convert-to-number>
    </select>

我的 ng-model 也是一个 int。

我做错了什么。

lstProf=[{firstName:'tony',lastName:'bob',id:188},{...},{...}];

<select data-ng-options="prof.id as prof.firstName +' 
     '+prof.lastName for prof in lstProf track by prof.id"
    data-ng-model="personById" 
    data-convert-to-number>
</select>

首先你的问题有错别字。 集合被命名为 lstProf,然后您在 ng-options 中以复数形式 lstProfs 引用它。 其次,根据 Pankaj Parkar 提出的文档,使用 select 与 track by 一样要小心。 track by 中的任何 属性,引用文档 track by expression is also applied to the ngModel

准备了简单的 plunker 以揭示解决问题的不同方法。 https://plnkr.co/edit/Rx8JfTee0JnyQa7UD1qE?p=preview