Angularjs 使用ng repeat和合并json中的值显示枚举值一次

Angularjs 使用ng repeat和合并json中的值显示枚举值一次,angularjs,json,checkbox,enums,angularjs-ng-repeat,Angularjs,Json,Checkbox,Enums,Angularjs Ng Repeat,JSON 在JSON中,我有一些问题和答案。 JSON的结构无法更改 在我的前端有一些带有问题和答案的复选框(如果AnswerValue==SomeEnum,则选中该复选框) 所有枚举值必须显示在前端。 如果AnswerValue==SomeEnum,则必须选中该复选框 问题是,如果您使用重复循环来循环答案,那么如果您有多个答案,枚举列表将被复制(见下文) []选项1 [x] 选项2 []选项3 []选项1 []选项2 [x] 选项3 我需要的是: [ ] option1<br>

JSON

在JSON中,我有一些问题和答案。 JSON的结构无法更改

在我的前端有一些带有问题和答案的复选框(如果AnswerValue==SomeEnum,则选中该复选框)

所有枚举值必须显示在前端。 如果AnswerValue==SomeEnum,则必须选中该复选框

问题是,如果您使用重复循环来循环答案,那么如果您有多个答案,枚举列表将被复制(见下文)

[]选项1
[x] 选项2
[]选项3
[]选项1
[]选项2
[x] 选项3
我需要的是:

[ ] option1<br>
[x] option2<br>
[ ] option3<br>
[ ] option1<br>
[ ] option2<br>
[x] option3<br>
[]选项1
[x] 选项2
[十] 选项3
HTML:


{{答案}}
{{答案}}

我需要的是通用解决方案,因为问题具有不同的枚举值集。子问题(在一个问题中)具有相同的枚举值集。

使用ng repeat时,您可以使用
unique
过滤器避免重复:

<div ng-repeat="(key, answer) in somevalue.EnumValue.SomeEnum">
    <div ng-if="key==somevalue.AnswerValue">
        <input type="checkbox" ng-checked="true">{{answer}}<br>
    </div>
    <div ng-if="key!=somevalue.AnswerValue">
        <input type="checkbox">{{answer}}<br>
    </div>
</div>

...

Unique可在一个系列中正常工作。但我需要比较2个或更多集合(来自子问题)
[ ] option1<br>
[x] option2<br>
[X] option3<br>
<div ng-repeat="(key, answer) in somevalue.EnumValue.SomeEnum">
    <div ng-if="key==somevalue.AnswerValue">
        <input type="checkbox" ng-checked="true">{{answer}}<br>
    </div>
    <div ng-if="key!=somevalue.AnswerValue">
        <input type="checkbox">{{answer}}<br>
    </div>
</div>
<div ng-repeat="(key, answer) in somevalue.EnumValue.SomeEnum | unique: 'answer'">
    ...
</div>