2014-11-23 40 views
0
<select ng-model="sortOrder"> 
    <option value="country">Country (A-Z)</option> 
    <option value="-country">Country (Z-A)</option> 
</select> 

控制器:如何将初始值设置为ng-model选项?

$scope.sortOrder = ['-country', 'name']; 

我有它设置了这样的事情。它可以工作,但默认情况下,选择选项只是空的。我希望默认选择第一个选项,甚至只是一些文本..基本上只是一个空的下拉列表。我怎么能做到这一点?

+2

在您的控制器:'$ scope.sortOrder =“country'' – 2014-11-23 01:19:48

+0

是的数组不是一个有效的模式选项 – tommybananas 2014-11-23 01:20:02

+0

和修复它!谢谢! @JoaoLeal – Pauli 2014-11-23 01:25:36

回答

0

您应该使用ng-options

<select ng-model="selectedItem" ng-options=" item.name for item in items"></select> 

现在在创建项目或者如果你是动态获取项目列表比你的第一个项目指定为这样

默认的项目列表设置默认选项
$scope.items = [{'name': 'Select Item'}, 
         {'name' : 'Google Calendar'}, 
         {'name' : 'Jira'}, 
         {'name' : 'Zendesk'}]; 

//This will set the default item as selected. 
$scope.selectedItem = $scope.items[0]; 

让我知道如果它仍然不清楚。

+0

我需要为每个文本分配一个文本(每行不同)和一个不同的值。这样我只能给'name'赋予不同的值,对吧? @CrazyGeek – Pauli 2014-11-23 11:36:35

+0

是的,你可以在每个项目中添加更多的属性,这样你就可以访问item.value和一件事情,如果你想为每个选项分配一些像css类一样的自定义属性,那么应该创建一个自定义指令。 – CrazyGeek 2014-11-23 14:35:36

+0

如何添加更多属性?每个项目至少需要三个或更多。现在它基本上是每个不同名称行的一个值。当我做for循环时,我如何访问其他属性?就像这是一个下拉菜单一样,每个项目通常至少有一个文本和一个值。 @CrazyGeek – Pauli 2014-11-25 14:51:52

0

你可以使用 “选择” 属性<option>上初始化:

<select ng-model="selecteditem"> 
<option ng-repeat="item in items" value="{{item}}" {{item===selecteditem ? 'selected' : ''}}></option> 
</select>