AngularJS 和 Select
AngularJS and Select
我无法理解为什么我的 Angular <select>
没有将默认值添加到我想要的类别中。
我在 Parse 中有一个从我们的数据库返回的对象;对象是这样的(这是 "selected" 选项):
$scope.item.category = { id: 'uosDHIF', className: 'Category', name: 'Projects' }
我还有一个类别列表:
$scope.categories = [{ id: 'uosDHIF', className: 'Category', name: 'Games' }, { id: 'uosDHIF', className: 'Category', name: 'Random' }, { id: 'uosDHIF', className: 'Category', name: 'Projects' }]
在我的 HTML 中,我的 select 是这样的:
<select name="category" class="form-control mb-10" ng-model="item.category" ng-options="category.name for category in categories"></select>
我可以 select 一个新类别并将其分配给该项目,然后我可以使用 item.save() 保存该项目但是我遇到的麻烦是 selected (ng-model) 似乎不起作用,当我第一次进入页面时,我总是得到默认的空白选项,即使我在控制台检查时有类别。
此外,我能够使用我自己创建的一个简单对象使其工作,但是这个对象是从我们的 Parse 数据库返回的,所以我不确定这是问题所在还是我只是少了一些东西。
感谢您的帮助。
注意:我读过其他与我类似的 Whosebug 问题,但它们对我的问题没有帮助。
请按以下方式更改 html。希望这对您有所帮助。
ng-model="item.category.id" ng-options="category.id as category.name for category in categories">
事实上,在 ng-options 上,您必须指定模型的值(category as category.name => 您为 ng-model 选择类别但是用他的名字显示)。
匹配通过引用发生,因此您需要相同的对象(类别:$scope.categories[0])。
你可以试试:
JS
$scope.categories = [
{ id: 'uosDHIF', className: 'Category', name: 'Games' },
{ id: 'uosDHIF', className: 'Category', name: 'Random' },
{ id: 'uosDHIF', className: 'Category', name: 'Projects' }
];
$scope.item = {
category : $scope.categories[0]
};
HTML
<select name="category" class="form-control mb-10" ng-model="item.category" ng-options="category as category.name for category in categories"></select>
我无法理解为什么我的 Angular <select>
没有将默认值添加到我想要的类别中。
我在 Parse 中有一个从我们的数据库返回的对象;对象是这样的(这是 "selected" 选项):
$scope.item.category = { id: 'uosDHIF', className: 'Category', name: 'Projects' }
我还有一个类别列表:
$scope.categories = [{ id: 'uosDHIF', className: 'Category', name: 'Games' }, { id: 'uosDHIF', className: 'Category', name: 'Random' }, { id: 'uosDHIF', className: 'Category', name: 'Projects' }]
在我的 HTML 中,我的 select 是这样的:
<select name="category" class="form-control mb-10" ng-model="item.category" ng-options="category.name for category in categories"></select>
我可以 select 一个新类别并将其分配给该项目,然后我可以使用 item.save() 保存该项目但是我遇到的麻烦是 selected (ng-model) 似乎不起作用,当我第一次进入页面时,我总是得到默认的空白选项,即使我在控制台检查时有类别。
此外,我能够使用我自己创建的一个简单对象使其工作,但是这个对象是从我们的 Parse 数据库返回的,所以我不确定这是问题所在还是我只是少了一些东西。
感谢您的帮助。
注意:我读过其他与我类似的 Whosebug 问题,但它们对我的问题没有帮助。
请按以下方式更改 html。希望这对您有所帮助。
ng-model="item.category.id" ng-options="category.id as category.name for category in categories">
事实上,在 ng-options 上,您必须指定模型的值(category as category.name => 您为 ng-model 选择类别但是用他的名字显示)。
匹配通过引用发生,因此您需要相同的对象(类别:$scope.categories[0])。
你可以试试:
JS
$scope.categories = [
{ id: 'uosDHIF', className: 'Category', name: 'Games' },
{ id: 'uosDHIF', className: 'Category', name: 'Random' },
{ id: 'uosDHIF', className: 'Category', name: 'Projects' }
];
$scope.item = {
category : $scope.categories[0]
};
HTML
<select name="category" class="form-control mb-10" ng-model="item.category" ng-options="category as category.name for category in categories"></select>