Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng选项中的键值对_Javascript_Angularjs_Select_Ng Options - Fatal编程技术网

Javascript ng选项中的键值对

Javascript ng选项中的键值对,javascript,angularjs,select,ng-options,Javascript,Angularjs,Select,Ng Options,我需要使用关联数组作为使用AngularJS的select选项的数据源 可以使用这样的数组吗 { "key1": "val1", "key2": "val2", "key3": "val3", ... } 然后得到这样的结果: <select> <option value="key1">val1</option> <option value="key2">val2</option>

我需要使用关联数组作为使用AngularJS的
select
选项的数据源

可以使用这样的数组吗

{
    "key1": "val1",
    "key2": "val2",
    "key3": "val3",
    ...
}
然后得到这样的结果:

<select>
    <option value="key1">val1</option>
    <option value="key2">val2</option>
    <option value="key3">val3</option>
    ...
</select>

瓦尔1
瓦尔2
val3
...
我读过,但我不明白如何做到这一点。

使用
ng选项
: 控制器中的数据:
下面的文章讨论了使用Ngoption的各种方法(到目前为止,这是我所见过的最清晰、最彻底的解释):

Answer by实际上给出了访问对象的两种方法。只想再加几行-

由于
ng repeat
指令为数组中的每个项目重复一块HTML代码,因此它可用于在下拉列表中创建选项,但
ng options
指令是专门为用选项填充下拉列表而制定的,它至少有一个重要优点:

使用
ng选项制作的下拉列表允许将所选值设置为
对象,而从
ng repeat
生成的下拉列表必须是字符串

为参考添加一个示例:

ng重复

ng选项


为了完整的参考,我强烈建议避免ng repeat方法,因为它为每个键/值对添加了2个新手表。所以基本上,如果你的选择包含50个项目,你只创建了100个新的观察者。Yikes.如果您需要使用
ng repeat
并且您的键/值没有变化,我认为您可以通过使用新语法避免提到的2个新手表@MarkusHay:
{::value}
谢谢,比官方文档中的
ngOption
更清晰。使用ng选项:我看到了许多基于
object
ng选项的解决方案,但这是最好的。非常好,但无法使用“ng-options”设置默认选定项谢谢,我不得不说该链接是迄今为止最好的。:-)
<select ng-model="blah" ng-options="key as value for (key , value) in data"></select>
<select>
    <option ng-repeat="(key, value) in data" value="{{key}}">{{value}}</option>
</select>
$scope.data = {
    "key1": "val1",
    "key2": "val2",
    "key3": "val3",
    ...
};