我有使用ng-options
生成的下拉列表<select class="form-control" ng-options="item.value as item.label for item in filterFields track by item.value" ng-model="selectedFilterField">
</select>
问题在于,当我从此dropwon中选择一个选项时,所选项目显示为空,并且下拉列表中会添加一个额外的空白元素。我做错了什么?
编辑:添加控制器代码:
$ scope.columns = accountColumns;
$scope.filterFields = [];
$scope.filterFields.push(defaultSelectOption);
$scope.filterFieldValues.push(defaultSelectOption);
var idx = 1;
for(i=0; i < accountColumns.length; i++) {
var option = {label: accountColumns[i], value: accountColumns[i]};
$scope.filterFields.push(option);
}
$scope.selectedFilterField = $scope.filterFields[0];
答案 0 :(得分:0)
假设您的filterFields数组包含如下所示的对象:
{
name: "",
value: 0
}
在你的ng-options中,你告诉angular,select的可能值是这些对象的数组。但你也告诉角度,当你选择一个选项时,真正的值是object.value;所以现在angular看到这个值不存在于选项数组中并试图添加它或什么。
最初下拉列表有效,因为您将ng-model设置为filterFields数组中的完整对象。
试试这个:
ng-options="item for item in filterFields track by item.value"