首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Angular.js选择框中设置默认选项

如何在Angular.js选择框中设置默认选项
EN

Stack Overflow用户
提问于 2013-08-13 02:38:55
回答 19查看 520.7K关注 0票数 318

我已经在谷歌上搜索过了,在这上面找不到任何东西。

我有这个代码。

代码语言:javascript
复制
<select ng-model="somethingHere" 
        ng-options="option.value as option.name for option in options"
></select>

使用下面的一些数据

代码语言:javascript
复制
options = [{
   name: 'Something Cool',
   value: 'something-cool-value'
}, {
   name: 'Something Else',
   value: 'something-else-value'
}];

输出结果是这样的。

代码语言:javascript
复制
<select ng-model="somethingHere"  
        ng-options="option.value as option.name for option in options" 
        class="ng-pristine ng-valid">

    <option value="?" selected="selected"></option>
    <option value="0">Something Cool</option>
    <option value="1">Something Else</option>
</select>

如何将数据中的第一个选项设置为默认值,这样就会得到这样的结果。

代码语言:javascript
复制
<select ng-model="somethingHere" ....>
    <option value="0" selected="selected">Something Cool</option>
    <option value="1">Something Else</option>
</select>
EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2013-08-13 03:38:01

您可以像这样简单地使用ng-init

代码语言:javascript
复制
<select ng-init="somethingHere = options[0]" 
        ng-model="somethingHere" 
        ng-options="option.name for option in options">
</select>
票数 377
EN

Stack Overflow用户

发布于 2013-08-13 04:04:26

如果您希望确保视图初始化时不会覆盖Init值,则需要将ng- $scope.somethingHere中的值合并(somethingHere = somethingHere || options[0].value),如下所示:

代码语言:javascript
复制
<select ng-model="somethingHere" 
        ng-init="somethingHere = somethingHere || options[0].value"
        ng-options="option.value as option.name for option in options">
</select>
票数 238
EN

Stack Overflow用户

发布于 2014-04-01 00:24:53

我认为,在包含'track‘之后,您可以在ng-options中使用它来获得您想要的内容,如下所示

代码语言:javascript
复制
 <select ng-model="somethingHere" ng-options="option.name for option in options track by option.value" ></select>

这样做更好,因为当您想用对象列表替换字符串列表时,只需将其更改为

代码语言:javascript
复制
 <select ng-model="somethingHere" ng-options="object.name for option in options track by object.id" ></select>

其中,somethingHere是一个具有属性名称和id的对象。请注意,'as‘不是以这种方式表示ng-options的,因为它只设置值,当您使用track by时,您将无法更改它

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18194255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档