我已经在谷歌上搜索过了,在这上面找不到任何东西。
我有这个代码。
<select ng-model="somethingHere"
ng-options="option.value as option.name for option in options"
></select>
使用下面的一些数据
options = [{
name: 'Something Cool',
value: 'something-cool-value'
}, {
name: 'Something Else',
value: 'something-else-value'
}];
输出结果是这样的。
<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>
如何将数据中的第一个选项设置为默认值,这样就会得到这样的结果。
<select ng-model="somethingHere" ....>
<option value="0" selected="selected">Something Cool</option>
<option value="1">Something Else</option>
</select>
发布于 2013-08-13 03:38:01
您可以像这样简单地使用ng-init
<select ng-init="somethingHere = options[0]"
ng-model="somethingHere"
ng-options="option.name for option in options">
</select>
发布于 2013-08-13 04:04:26
如果您希望确保视图初始化时不会覆盖Init值,则需要将ng- $scope.somethingHere
中的值合并(somethingHere = somethingHere || options[0].value
),如下所示:
<select ng-model="somethingHere"
ng-init="somethingHere = somethingHere || options[0].value"
ng-options="option.value as option.name for option in options">
</select>
发布于 2014-04-01 00:24:53
我认为,在包含'track‘之后,您可以在ng-options中使用它来获得您想要的内容,如下所示
<select ng-model="somethingHere" ng-options="option.name for option in options track by option.value" ></select>
这样做更好,因为当您想用对象列表替换字符串列表时,只需将其更改为
<select ng-model="somethingHere" ng-options="object.name for option in options track by object.id" ></select>
其中,somethingHere是一个具有属性名称和id的对象。请注意,'as‘不是以这种方式表示ng-options的,因为它只设置值,当您使用track by时,您将无法更改它
https://stackoverflow.com/questions/18194255
复制相似问题