angularjs – ng选项与简单数组init

前端之家收集整理的这篇文章主要介绍了angularjs – ng选项与简单数组init前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点困惑与Angular和ng选项。

我有一个简单的数组,我想要初始化一个选择它。但是,我想要的选项值=标签

script.js

$scope.options = ['var1','var2','var3'];

html

<select ng-model="myselect" ng-options="o for o in options"></select>

我得到什么:

<option value="0">var1</option>
<option value="1">var2</option>
<option value="2">var3</option>

我想要的是:

<option value="var1">var1</option>
<option value="var2">var2</option>
<option value="var3">var3</option>

所以我试过:

<select ng-model="myselect2" ng-init=0 ng-options="options[k] as v for (k,v) in options"></select>

<select ng-model="myselect3" ng-init=0 ng-options="b as b for b in options"></select>

(但它没有工作。)

编辑:

我的表单是外部提交的,这就是为什么我需要’var1’作为值而不是0。

你实际上在你的第三次尝试是正确的。
<select ng-model="myselect" ng-options="o as o for o in options"></select>

在这里看到一个工作示例:
http://plnkr.co/edit/xEERH2zDQ5mPXt9qCl6k?p=preview

诀窍是AngularJS将键作为数字从0到n无论如何,并更新回模型更新时。

因此,HTML将看起来不正确,但是在选择值时仍会正确设置模型。 (即AngularJS将’0’转换回’var1′)

Epokk的解决方案也有效,但是如果你以异步方式加载数据,你可能会发现它并不总是正确地更新。使用ngOptions将在范围更改时正确刷新。

猜你在找的Angularjs相关文章