javascript - 将项目放入列表框中 - 在 Angularjs 中说“选择几个月后选择”是什么意思?
问题描述
https://angularjsaz.blogspot.com/2015/09/tutorial-28-angularjs-listbox-example.html
这表明:
<select style="width: 100%;" size="7" ng-model="currentItems" multiple
ng-multiple="true"
ng-options="opt as opt for opt in months">
</select>
这行得通。我想了解此语句的作用:opt as opt for opt in months
我也知道ng-repeat需要car in cars。为什么我不能在这里使用这样的东西?
就我而言,汽车是:
cars = [
{make: 'Mazda', model: 'Miata', year: 2001},
{make: 'Toyota', model: 'Prius', year: 2013},
]
在他们的情况下,月份是:
months = ['January','February','March','April']
解决方案
根据文档,用于迭代数组数据源(如您的情况)的 ng-options 遵循以下模式:
选择作为数组中值的标签
在哪里:
array : 一个表达式,其计算结果为要迭代的数组/对象。
value:局部变量,它将在迭代期间引用数组中的每个项目或对象的每个属性值。
label:此表达式的结果将是元素的标签。表达式很可能引用值变量(例如 value.propertyName)。
select:此表达式的结果将绑定到父元素的模型。如果未指定,则选择表达式将默认为值。
这主要用于将对象数组显示为选择列表中的选项,您希望在其中迭代的对象、标签和绑定到ng-model
指令的值是 3 个不同的东西。在你的情况下,它们只是字符串,所以它基本上是在说stringSelectValue as stringLabel for stringItem in stringArray
.
你可以通过说来简化这个例子ng-options="month for month in months"
。如果未提供选择值,它也会使用标签值作为选择值。
推荐阅读
- javascript - 服务器中css和js的变化,不适用于网站
- java - 如何在 Android 的 Firebase DB 中设置布尔值
- multithreading - 从线程获取HashMap
- wso2is - SCIM 2.0 过滤器表达式 - 不能使用“或”表达式
- c# - 同步绑定到同一个集合和同一个选定项的两个组合框
- postgresql - 有效地将点分配给多边形
- c - 如何将一个简单的树写入文件并将其读回?
- ionic-framework - 在 Ionic 4 中使用 Camera Native 获取后图像未显示
- authentication - 对 API 服务器使用 ID 令牌或访问令牌
- c# - 如何在组合框中仅显示字符串的一部分