我已经在其他帖子中阅读过,但是我无法弄清楚。
我有一个数组
$scope.items = [
{ID: '000001', Title: 'Chicago'},
{ID: '000002', Title: 'New York'},
{ID: '000003', Title: 'Washington'},
];
我想将其呈现为:
<select>
<option value="000001">Chicago</option>
<option value="000002">New York</option>
<option value="000003">Washington</option>
</select>
我也想选择ID = 000002的选项。
我已经阅读了 select
并尝试过,但是我无法弄清楚。
要注意的一件事是ngOptions起作用 需要 ngModel。请注意,ng-model="blah"
这是“将$
scope.blah设置为所选值”。
试试这个:
<select ng-model="blah" ng-options="item.ID as item.Title for item in items"></select>
这里是AngularJS文档的更多内容(如果您还没有看过的话):
对于数组数据源:
- 数组中值的标签
- 选择作为数组中值的标签
- 标签按组为数组中的值=选择标签按组为数组中的值
对于对象数据源:
- 对象中(key,value)的标签
- 选择作为对象中(key,value)的标签
- 在对象中按组为(键,值)标签
- 在对象中按组选择标签(键,值)
对于AngularJS中的选项标签值的一些澄清:
使用时ng-options
, ng-options写入的选项标签的值将始终是选项标签所关联的数组项的索引
。这是因为AngularJS实际上允许您使用选择控件选择整个对象,而不仅仅是原始类型。例如:
app.controller('MainCtrl', function($scope) {
$scope.items = [
{ id: 1, name: 'foo' },
{ id: 2, name: 'bar' },
{ id: 3, name: 'blah' }
];
});
<div ng-controller="MainCtrl">
<select ng-model="selectedItem" ng-options="item as item.name for item in items"></select>
<pre>{{selectedItem | json}}</pre>
</div>
上面的内容使您可以$scope.selectedItem
直接选择整个对象。 关键是,使用AngularJS,您无需担心选项标签中的内容。
让AngularJS处理;您应该只关心范围内模型中的内容。
这是一个演示上述行为的代码,并显示了写出的HTML
处理默认选项:
关于默认选项,我上面没有提到几件事。
选择第一个选项并删除空选项:
您可以通过添加一个简单ng-init
的模型来实现此目的,该模型将模型(from ng-model
)设置为您在其中重复的项目中的第一个元素ng- options
:
<select ng-init="foo = foo || items[0]" ng-model="foo" ng-options="item as item.name for item in items"></select>
注意:如果foo
恰好正确初始化为“ fassy”,这可能会有点疯狂。在这种情况下,您foo
很可能希望在控制器中处理的初始化。
自定义默认选项:
这有点不同。在这里,您所需要做的就是添加一个选择标签作为您选择的子标签,并带有一个空值属性,然后自定义其内部文本:
<select ng-model="foo" ng-options="item as item.name for item in items">
<option value="">Nothing selected</option>
</select>
注意:在这种情况下,即使您选择其他选项,“空”选项也将保留在那里。AngularJS下selects的默认行为不是这种情况。
一个定制的默认选项,在选择之后会隐藏:
如果希望在选择一个值后取消自定义的默认选项,则可以在默认选项中添加ng-hide属性:
<select ng-model="foo" ng-options="item as item.name for item in items">
<option value="" ng-if="foo">Select something to remove me.</option>
</select>
问题内容: 我正在使用ng-options在我的角度应用程序中打印表单的所有选项。我直接从数据库中获得了价值,该数据库为我提供了国家列表: 在这里,当页面被加载时,选择不显示任何内容,即没有占位符,而我想打印一个静态值,例如“ anywhere”,而不必将其添加到“国家”列表中。 我已经试过了: 但这没用 有谁知道如何解决这个问题? 谢谢 问题答案: 您总是可以这样做: 这是我的小提琴例子 希望这
我在其他的帖子里读到过,但我想不通。 我读过select也试过,但我想不通。
问题内容: 我希望解决三个问题… 在我的应用程序页面中,我有一个选择州,另一个选择县。对于州,我有: 数据: 对于我的县,请选择: 数据: 这是我的: 因此,如您所见,我在州选择上使用,在县选择上使用,在县数据集中已设置了相应的州ID 。 我想做几件事: 隐藏选择的县,直到选择了一个州。 选择州后,按选定的/ 过滤县选择选项 筛选由第一,然后由。 我还没有看到一个方法来设置到或过滤器由一个数字,而
问题内容: 我尝试使用AngularJS进行简单的选择下拉列表 这是我的代码: 格式如下: 选择下拉列表出现,但没有任何选择值,我在做什么错? 问题答案: 我相信您缺少ngModel指令,并且以错误的方式调用ng-options指令。 我在这里工作的地方做了个小矮人。
问题内容: 我刚刚升级到角度版本1.3.8。 当使用1.2.23版本时,我创建了一条指令来将数据表单视图转换为模型,反之亦然。 这是我的指令: }); 我在这里看到现在支持绑定中的getter和setter,但是我在任何地方 都 找不到如何同时使用getter 和 setter的方法。有什么办法吗?那就是-ng-model- options可以代替我的convert指令吗? 谢谢 问题答案: 该文
问题内容: 我想筛选一个像这样的选择: 编辑:添加列模型: 列用于多种用途,并且为了优化我的代码,我需要将其也包含在Select中,但没有类型为“字段”或“映射”的条目 但是,我可以从所有内容中进行选择,甚至包括类型为“字段”和“地图”的条目。有没有一种清洁的方法? 问题答案: AngularJS NOT过滤器 小提琴 从 文档 : “ …谓词可以通过在字符串前面加上!来取反。” “模式对象可用于