繁体   English   中英

AngularJS,ng-选项

[英]AngularJS, ng-options

我研究了AngularJS,但我无法理解ng-options指令中表达式的含义,这是代码的链接,以下是我无法理解的内容:

ng-options="net for net in networks"

我看过文档 ,文档将上面的表达式解释为:

数组中值的标签

因此,每个选项中都有value属性,该值表示数组中的键,我的问题是net for net in networks的表达式net for net in networks是如何工作的,我的意思是:

  • 我假设第一个net是键,第二个是值,因此表达式“说”将那个值的键放在netwroks数组内,并将其放在每个option元素的每个value属性内。
  • 我不明白的是net for net如何影响ng-model="network"

这是我对您的文档的简单解释:

label是显示给用户的选项元素的内容。

value是选择该选项时放置在ngModel绑定中的值,而不是您假设的option元素的value属性。

option元素的value属性通过角度设置为array中关联项目的索引(如您所查看的是否在plunker示例中检查select元素一样)。

编辑

您可以将ng-options视为foreach循环。 由于networks在这种情况下是一个字符串数组,因此net只是成为数组中的每个字符串项。

如果网络是一组对象,情况将有所不同。 给定的networks看起来像这样:

var networks = [
    { id: 10, name: 'Verizon' },
    { id: 20, name: 'AT&T' },
    { id: 30, name: 'Sprint' },
];

net将成为数组中的每个对象。 在这种情况下,您可以net.name for net in networks使用表达式net.name for net in networks来显示net.name for net in networks的名称,但为ngModel绑定network赋予对象本身的值。 如果您想使用id作为值,则可以使用表达式net.id as net.name for net in networks 此处查看更新的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM