Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Angular.js使用ngOptions选择:标记optgroup_Angularjs_Angularjs Ng Options - Fatal编程技术网

Angularjs Angular.js使用ngOptions选择:标记optgroup

Angularjs Angular.js使用ngOptions选择:标记optgroup,angularjs,angularjs-ng-options,Angularjs,Angularjs Ng Options,我刚开始使用Angular.js,对ngOptions有一个问题:是否可以标记optgroup 让我们假设两个对象-汽车和车库 cars=[ {“id”:1,“name”:“暗黑破坏神”,“color”:“red”,“garageId”:1}, {“id”:2,“name”:“Countach”,“color”:“white”,“garageId”:1}, {“id”:3,“name”:“Clio”,“color”:“silver”,“garageId”:2}, ... ] 车库=[ {“id”

我刚开始使用Angular.js,对ngOptions有一个问题:是否可以标记optgroup

让我们假设两个对象-汽车和车库

cars=[
{“id”:1,“name”:“暗黑破坏神”,“color”:“red”,“garageId”:1},
{“id”:2,“name”:“Countach”,“color”:“white”,“garageId”:1},
{“id”:3,“name”:“Clio”,“color”:“silver”,“garageId”:2},
...
]
车库=[
{“id”:1,“name”:“超级豪华车库”},
{“id”:2,“name”:“Toms Eastside”},
...
]
通过这段代码,我几乎得到了我想要的结果:

ng options=“car.id作为car.name+”(“+car.color+”)“按car.garageId分组,用于车内车”
结果在选择:

-----------------
1
 Diablo (red)
 Countach (white)
 Firebird (red)
2
 Clio (silver)
 Golf (black)
3
 Hummer (silver)
-----------------
但我想给optgroups贴上标签,比如“Garage 1”、“Garage 2”。。。或者更好地显示车库的名称,而不仅仅是车库ID

上面没有提到optgroup的标签,但是我想通过Ngoption的一部分来扩展这个组,比如
groupbycar.garageId为'Garage'+car.garageId
或者
groupbycar.garageId为getGarageName(car.garageId)
,可惜这个选项不起作用

到目前为止,我唯一的解决方案是将一个新属性“garageDisplayName”添加到car对象中,并将id+车库名称存储在其中,并将其作为GROUPBY参数使用。但我不想在车库名称更改时更新所有汽车


有没有办法用ngOptions标记optgroups,或者我应该在这种情况下使用ngRepeat?

您可以只调用
group by
中的
getGarageName()
,而不使用
as

ng-options="car.id as car.name + ' (' + car.color + ')' group by getGarageName(car.garageId) for car in cars"
< >不要将车库ID存储在每辆车中,您可能需要考虑在车库数组中存储对车库对象的引用。这样你就可以更改车库的名称,而无需更改每辆车。而分组方式就变成了


按车分组。车库。姓名

非常感谢!我总是用
作为
部分来尝试,而不是只写我想显示的表达式。:)因此,也可以按“Garage”+car.garageId对
进行分组。正如您所建议的,我考虑存储车库的引用,而不是id,并以以下内容结束:
按car.Garage.name+'-'+car.Garage.id进行分组(车库名称不唯一),这确实更简单。