有人可以解释Angular for-for-in表达式表示法吗?

时间:2016-11-15 23:02:46

标签: javascript angularjs loops iteration

在Angular循环(ng-repeat,ng-options)中,您可以使用以下语法:

item as item.label for item in items

有人可以解释一下表达式中的每个标记在做什么以及它意味着什么?你能指点我的文件吗?我无法弄清楚要搜索什么(搜索'as'或'for'是无用的)。 ng-repeat或ng-options的文档中没有提到它。

我知道它会以某种方式让你从对象列表中选择一个对象,但是'item'会在表达式中出现两次,而且我不清楚该令牌在这个表达式中的作用是什么。

很抱歉,如果这些都记录在一些我找不到的地方......

1 个答案:

答案 0 :(得分:2)

你有一个数组“items”。而你正在与它进行互动

item in items

由于您从此页面“https://docs.angularjs.org/api/ng/directive/ngOptions”未完全复制的示例通常会创建一个下拉列表,现在问题是您当前在迭代中拥有的“item”对象具有的字段多于字符串,显示为下拉条目的标签。这是对象:

$scope.items = [{
  id: 1,
  label: 'aLabel',
  subItem: { name: 'aSubItem' }
}, {
  id: 2,
  label: 'bLabel',
  subItem: { name: 'bSubItem' }
}];

那么你想要展示什么呢?是的,你想要显示“item.label”。 那是什么

item as item.label

一样。它告诉循环使用当前“item.label”值作为此特定循环的“item”。