2014-01-24 57 views
-2

我试图表现出NG重复内的选择框,我坚持以下几点:选择AngularJS

<tr ng-repeat="element in elements" post-repeat-directive> 

    <td>{{element.name}}</td> 
    <td>   
    <select ng-model="element.type" 
       ng-options="item.id as item.name for item in tipo_items"></select> 
    </select>  
    </td> 
</tr> 

在我的控制,我有:

$scope.tipo_items = [ 
     { id: 1, name: 'uno' }, 
     { id: 2, name: 'dos' }, 
     { id: 3, name: 'tres' }, 
     { id: 4, name: 'cuatro' }, 
     { id: 5, name: 'cinco' }, 
    ]; 

这说明选择项目,但没有预先选择的项目! 我检查了element.type的值,它们是正确的... 我在做什么错了?

回答

-1

这是角度选择指令的默认行为。如果您将ctrl中的ng-model设置为默认值,您将获得预选。

像(在CTRL):

$scope.element.name = $scope.tipo_items[0] 
0

根据您在select定义的理解表达,你需要使用id值预选项目,并将其设置为model对象。

$scope.element = {}; 
$scope.element.type = $scope.tipo_items[0].id; 

DEMO

+0

我不明白!我不能更改类型,因为它是从数据库加载的......类型已经是1-5之间的整数。我只需要它被选中! –

0

OK,我发现这个问题... 我被加载从数据库中为JSON的ID,而ID是一个字符串,而不是一个整数... 这解决了这个问题:

$scope.tipo_items = [ 
    { id: '1', name: 'uno' }, 
    ... 

,而不是

$scope.tipo_items = [ 
    { id: 1, name: 'uno' }, 
    ...