答案 0 :(得分:0)
一个简单的解决方案是在绑定之前重构JavaScript对象,以便它将拥有另一个名为part12
的属性,然后通过该属性进行跟踪:)
答案 1 :(得分:0)
如果displayName是JSON响应的一部分,那么在控制器中设置选项时,应该将其添加到selectedOption。
这是一个如何在没有它的情况下完成它的工作示例(如果你在默认的selectedOption中有显示名称,那么添加“option as option.displayName ..”)
angular.module("app", [])
.controller("fooCtrl", function() {
// This comes from an Angular service / back-end:
this.options = [
{ part1: 3, part2: 101, displayName: "Option 3-101" },
{ part1: 4, part2: 651, displayName: "Option 4-651" },
{ part1: 4, part2: 999, displayName: "Option 4-999" }
];
this.item = { selectedOption: { part1: 4, part2: 651} };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="app" ng-controller="fooCtrl as vm">
<select ng-options="option as ('Option ' + option.part1 + '-' + option.part2) for option in vm.options track by (option.part1 +'-'+ option.part2)"
ng-model="vm.item.selectedOption"></select>
<hr>
Debug info:
<pre>{{vm.item | json}}</pre>
</div>