- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
$scope.items = [{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}, {
id: 2,
label: 'bLabel',
subItem: { name: 'bSubItem' }
}];
根据上面的列表,以下是我通常使用的:
<select ng-options="item in items" ng-model="selected"></select>
非常简单,例如,我可以使用 item.xxx
访问该值
但是下面的语法是什么:
<select ng-options="item as item.label for item in items" ng-model="selected"></select>
我完全模糊了,as
和for
关键字的目的是什么?我实在找不到解释这一点的文档,请帮忙。
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
但我删除了
track by
,因为我通过阅读文档了解了这一点。
最佳答案
这是 <select>
的选项列表应引用填充选项。
$scope.items = [{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}, {
id: 2,
label: 'bLabel',
subItem: { name: 'bSubItem' }
}];
当你写ng-options="item as item.label for item in items"
时,您正在迭代 items
,其中每个项目都分配给 item
通过使用item in items
.
因此,对于第一次迭代,item
的值将是:
{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}
请注意item
在本例中是一个对象。
<option>
不关心您如何为其获取数据,它只关心它需要显示的内容以及在选择它时分配什么值。所以,我们告诉ng-options
使用for
需要 item
作为输入并生成对应的<option>
元素。
现在在选择选项中,假设您希望输入为 id
。但是嘿,谁知道你的 id
是什么意思? ,为了人类可读,您需要显示一些有意义的消息来识别它,即 label
在这种情况下。
因此,您将仅使用它的id
,而不是使用整个对象。使用label
时识别它(下拉列表中显示的文本)。现在您的代码更改为:
ng-options="item.id as item.label for item in items"
所以最终生成的 HTML 变成这样:
<select>
<option value="1">aLabel</option>
<option value="2">bLabel</option>
</select>
关于javascript - Angularjs ngrepeat和ngoptions, "as" "for"关键字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409371/
我在从 1.2.14 迁移到 1.4.8 时遇到了这个问题。这在 1.2.14 中工作正常,但我在 1.4.8 中得到无限的 $digest() 循环。这是一个Fiddle证明问题。 Fiddle 比
我正在尝试渲染选择框,但它没有按预期工作 - 选项值不正确。我查了manual ,根据它,数组(在我的例子中是对象数组)的语法是 select as label for value in array
我有这个代码: //sample of data. var combobox = new[] { new { Key = 1, Value = "a[del]", is
我一直在尝试使用 ng-options在一个选择中显示一个字体数组,该数组按数组中项目的值按字母顺序排序。 HTML Choose a font JS $scope.webfonts =
我有以下穿梭箱指令: 我的模板如下所示: template: '' + '' + '' + '' + '' + ''
我的一个选择元素中有 ngOptions 连接到我在 Controller 中创建的数组,但它只是不显示任何值。我一定是做了什么蠢事。 我确信 Angular 正在工作,并且 Controller 必
我正在使用 AngularJS,并且生成了一个具有 size 属性的对象,该属性包含一个对象数组。 var product = [ // .. sizes: [ {choice: 'o
我有一个使用经销商对象数组的选择。我可以显示经销商名称作为选项,但我还想显示距离。例如“经销商名称 - 12 英里”。 我的选择: 最佳答案 在 doc : select as label for
我正在创建一个指令,用自定义的 select 标签替换普通的 select 标签: angular.module('myModule').directive('mySelect', function(
我正在尝试创建一个下拉菜单,但是当它加载时,我得到一个空的下拉选择框。 我正在使用以下 html: 有了这些数据: [ { "year
我遇到了一个奇怪的问题,我似乎无法用我的 View 进行故障排除。我正在使用生成我网站 TreeView 的指令。当我选择一个站点时,我有两个选择框,其中填充了一个站点中的组和该站点中的列表。当选项填
老实说,我不知道我在 Angular 中做什么,所以这可能是糟糕的编码实践。无论如何,我正在尝试将一些数据加载到 中异步元素。 这是模板 HTML: Advertisers:
我有一个网络服务器 (node.js),它提供一个 JSON 文件,其中包含以下格式的语言列表:{ "en": "English", "fr": "French"}(等等)。还有一个单独的 JSON,
我有这样的结构: model = [ { name: 'name1', items: [ { name: 'subobj1' }, { name
我有一个 select 标签,我使用 AngularJS 将其绑定(bind)到广播电台对象数组。我的对象具有以下属性: { id: 'WXYZ', name: 'Radio Stat
我正在使用 AngularJS 版本 1.4.7 并且有一个包含对象数组的简单 AngularJS Controller 。我想通过 ngOptions 将这些对象显示为选项。 问题是每个对象都是重复
只是好奇我们是否可以在 ng-options 中执行文本连接。 为了获得一个下拉列表,其中包含以下值: May 2015 这可能吗?那么ng-options怎么写呢? 最佳答案 是的,这是可能的。
我正在尝试使用“track by”表达式来跟踪对象数组中按 id 进行的选择。但是,我似乎无法让它像我认为的那样工作。 //ids from server $scope.serverDTO = ['1
所以我尝试在 angularJS 中创建一个下拉选择菜单。我可以使用 ng-repeat 列出内容: {{food.name}} 它为我显示了食物列表。我想把它变成一个选择。然而,无论我尝试什
我有一个名称-值集合,用于填充选择元素。我有一个模型,我想将其链接到所选值的 id。当选择元素更改时它可以工作,但是我在将初始模型值填充到页面加载时的选择元素时遇到问题。这是plunker . 下面是
我是一名优秀的程序员,十分优秀!