2016-01-28 58 views
0

我很难理解为什么我的Angular <select>不会将缺省值添加到我想要的类别。AngularJS和Select

我有一个从Parse中的数据库返回的对象;对象是这样的(这就是“选择”选项):

$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 name="category" class="form-control mb-10" ng-model="item.category" ng-options="category.name for category in categories"></select> 

我可以选择一个新的类别,它的分配到项目,然后我可以保存该项目与item.save(),但我有麻烦做什么,是选择(NG-模型)没有按”当我进入页面时,t似乎工作我第一次总是得到默认的空白选项,即使我登录控制台时有类别。另外,我能够使它与一个我自己创建的简单对象一起工作,但是这个对象从Parse中的数据库返回,所以我不确定这是问题还是我只是在那里失去一些东西。

谢谢你的帮助。

注意:我已经阅读了类似于我的其他StackOverflow问题,但它们对我没有帮助。

+0

您是否尝试过使用'NG-init'? – Kilmazing

回答

1

事实上,在NG选项,您必须指定模型中的价值(类别为category.name =>您选择NG-模型范畴,而是由他的名字显示它)。

通过参考发生匹配,因此您需要相同的对象(类别:$ 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> 
+0

它工作完美;我的问题是因为“类别作为category.name”如此伟大的解决,非常感谢! – Zeus

0

请更改下面的html ..希望这是有帮助的。

ng-model="item.category.id" ng-options="category.id as category.name for category in categories">