gpt4 book ai didi

angularjs - 带有简单数组初始化的 ng-options

转载 作者:行者123 更新时间:2023-12-03 04:13:06 24 4
gpt4 key购买 nike

我对 Angular 和 ng-options 有点困惑。

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

脚本.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 - 带有简单数组初始化的 ng-options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com