我正在尝试使用id:
设置此角度组合的值$scope.myColor =
{
id: 4
};
然而它不起作用?
这是角度js代码的其余部分:
angular.module('selectExample', [])
.controller('ExampleController', ['$scope',
function($scope) {
$scope.colors = [{
id: 1,
name: 'black',
shade: 'dark'
}, {
id: 2,
name: 'white',
shade: 'light'
}, {
id: 3,
name: 'red',
shade: 'dark'
}, {
id: 4,
name: 'blue',
shade: 'dark'
}, {
id: 5,
name: 'yellow',
shade: 'light'
}];
//$scope.myColor = $scope.colors[2]; // red
$scope.myColor = {
id: 4
};
}
]);
这是一个plunkr ref: http://plnkr.co/edit/jkXl4BhLeuu0CWnMhqkV?p=info
答案 0 :(得分:0)
如果我正确地提出您的问题,您希望显示如下
Currently selected: blue
如果是这样,你可以在你的第73行羽毛球上说这样的话。
<hr/>Currently selected: {{colors[myColor.id-1].name}}
答案 1 :(得分:0)
如果我不知道,$ scope.colors是组合选项,Scope.myColor是组合值。是的吗?
对于AngularJS,combo只适用于数组选项。只要它们是同一个对象,AngularJS就会认为两个对象是相同的。如果对象具有相同的属性和值,则无关紧要。
您选择红色的注释行应该可以使用。
答案 2 :(得分:0)
您可以添加track by
选项以告知Angular要用于比较的字段:
<select ng-model="myColor"
ng-options="color.name for color in colors track by color.id">
</select>
那应该在组合框中选择合适的项目。