我有一个对象数组,当我使用元素填充select时,它不会预先选择当前活动的对象。如果我更改选择它全部按预期工作,但在页面加载时未选择预先选择的元素。
JS :
$scope.license_year_list = [
{label:"Year of 1991", value:1991},
{label:"Year of 1992", value:1992} ];
$scope.item = {license_year: {label:"Year of 1992", value:1992}};
HTML :
<div ng-controller="MyCtrl">
<select ng-model="item.license_year"
ng-options="y.label for y in license_year_list">
</select>
</div>
答案 0 :(得分:2)
Angular根据实际对象/值的引用检查相等性。要使您的选择框以默认值开始,请执行默认值的简单分配。像这样更改你的代码:
HTML:
<div ng-controller="MyCtrl">
<select ng-model="item" ng-options="y.label for y in license_year_list"></select>
<br/><br/><br/>
{{item.license_year}}
</div>
JS:
function MyCtrl($scope) {
$scope.license_year_list = [{label:"Year of 1991", value:1991}, {label:"Year of 1992", value:1992}];
$scope.item = $scope.license_year_list[1];
}
答案 1 :(得分:1)
通过引用来评估对象的相等性,因此当您想要选择对象时,需要使用完全相同的对象。
$scope.item = {
license_year: $scope.license_year_list[1]
};