Angular Js:您可以将select的默认值与使用'track by'在ng选项中

Angular Js: Can you set the default value for a select in conjunction with using 'track by' in ng-options

本文关键字:track by 选项 ng Js 默认值 select Angular      更新时间:2023-09-26

在选择列表中设置选项值的最佳方法似乎是在ng选项指令中使用"track by"(使用a.id作为a.name似乎过时了)。但是,当我使用"track by"时,我无法再使用ng模型设置默认值。

举个例子,这个plunkr:http://plnkr.co/edit/OZCal9ZkCQeqnQJY0WP9?p=preview

  <select ng-model="class.team.leader" ng-options="student.name for student in curTeam.students track by student._id">

目前,plunkr正确地设置了默认值。但是,如果您将其更改为使用"track-by",就像上面的代码中一样,它将不起作用。

track by不能这样工作。它用于比较两个对象的属性,而不是检查对象是否相等。即CCD_ 2而不是CCD_。

例如,将默认型号更改为:

$scope.class = {
    team: {
       leader: { _id: 2, name: 'Dave', status: 0 }
    }  
};

如果没有track by,这将不起作用,因为它与学生数组中的对象不同。但与track by的角度将比较_id的性质来决定相等。