参见
ngOptionsngOptions(可选) – {
comprehension_expression=} –以下形式之一:对于数组数据源 :
label for value in arrayselect as label for value in arraylabel group by group for value in arrayselect as label group by groupfor value in array track by trackexpr对于对象数据源:label for (key , value)in objectselect as label for (key , value) in objectlabel group bygroup for (key, value) in objectselect as label group by group for (key,value) in object
就您而言,应该是
更新资料array = [{ "value": 1, "text": "1st" }, { "value": 2, "text": "2nd" }];<select ng-options="obj.value as obj.text for obj in array"></select>
通过AngularJS的更新,现在可以为带有表达式
value的
selectelement 属性设置实际值
track by。
如何记住这些丑陋的东西<select ng-options="obj.text for obj in array track by obj.value"></select>
对于所有很难记住这种语法形式的人:我同意这不是最简单或最漂亮的语法。这种语法是Python列表理解的扩展版本,并且知道这有助于我非常轻松地记住该语法。就像这样:
Python代码:
my_list = [x**2 for x in [1, 2, 3, 4, 5]]> [1, 4, 9, 16, 25]# Let people to be a list of person instancesmy_list2 = [person.name for person in people]> my_list2 = ['Alice', 'Bob']
这实际上与上面列出的第一个语法相同。但是,
<select>我们通常需要区分代码中的实际值和
<select>元素中显示的文本(标签)。
就像,我们需要
person.id代码,但是我们不想向
id用户显示。我们想显示它的名字。同样,我们
person.name对代码不感兴趣。有
as关键字标记东西。这样就变成了这样:
person.id as person.name for person in people
或者,代替
person.id我们可能需要
person实例/引用本身。见下文:
person as person.name for person in people
对于Javascript对象,也适用相同的方法。只要记住对象中的项目是用
(key, value)成对解构的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)