我希望输入选择元素填充"面板"来自 JSON-object数组,使用ng-options。在这样的面板中,我有几个属性,其中一个属于这样一个面板所属的类别。它还包含名称和组的列表。是的,在这种情况下,类别和组是两个不同的东西。
当我应用过滤器时,我收到infdig-error。
互联网上的研究告诉我,过滤器的内容正在发生变化,这就是错误的原因。当我使用ng-repeat对象时,过滤器确实有效。但是,通过这种方式,与面板关联的名称将显示为数组,而不是以逗号分隔的名称,并且页面也不会相应地更新。
<select class="form-control" ng-model="selectPanel" ng-click="ChangeForm()" ng-options="'(' + panel.group + ') ' + panel.names + ' [' + panel.category + ']' for panel in panels track by panel.id | filter:{category:pageCategory}">
<option value="">Select panel</option>
<select class="form-control" ng-model="selectPanel" ng-click="ChangeForm()">
<option value="">Select panel</option>
<option ng-repeat="panel in panels | filter:{category:pageCategory}" value="panel.id">{{panel.names}}</option>
</select>
{
"id":"01",
"category":"RD",
"group":"A",
"room": "1.00",
"names": [
"Bob",
"Jamie",
"Bill"
]
}
我想过滤面板,因为页面只包含单个类别的信息,但JSON数据包含所有类别。有没有办法避免ng-options中的infdig-error或者在使用ng-repeat时更新页面?
答案 0 :(得分:0)
ng-repeat解决方案打印数组对象的原因是因为您要告诉它打印数组对象。您需要告诉angular在panel.names
中打印每个名称。
所以添加另一个ng-repeat:
<span ng-repeat="name in panel.names">{{name}},</span>
请注意,这将留下逗号。
至于ng-options解决方案,并不完全确定导致infdig-error的原因,但你似乎错过了语法的as
部分。