【问题标题】:Show enum values once with ng-repeat and merge values from json使用 ng-repeat 显示枚举值一次并合并来自 json 的值
【发布时间】:2017-06-08 14:20:54
【问题描述】:

JSON

{
    "SubQuestion": "A question",
    "AnswerValue": "2",
    "EnumValue": {
        "Name": "name",
        "SomeEnum": {"1": "option1", "2": "option2", "3": "option3"}
    }

    "SubQuestion": "A second question",
    "AnswerValue": "3",
    "EnumValue": {
        "Name": "name",
        "SomeEnum": {"1": "option1", "2": "option2", "3": "option3"}
    }

}

在 JSON 中,我有一些问题需要回答。 JSON 的结构无法更改。

在我的前端有带有问题和答案的复选框(检查 AnswerValue == SomeEnum )

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

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

[ ] option1<br>
[x] option2<br>
[ ] option3<br>
[ ] option1<br>
[ ] option2<br>
[x] option3<br>

我需要的是这个:

[ ] option1<br>
[x] option2<br>
[X] option3<br>

HTML:

<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>

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

【问题讨论】:

    标签: angularjs json checkbox enums angularjs-ng-repeat


    【解决方案1】:

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

    <div ng-repeat="(key, answer) in somevalue.EnumValue.SomeEnum | unique: 'answer'">
        ...
    </div>
    

    【讨论】:

    • 独特的作品在一个集合中很好。但我需要比较 2 个或更多集合(来自子问题)
    猜你喜欢
    • 2012-09-03
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2020-04-04
    • 2015-12-11
    • 1970-01-01
    相关资源
    最近更新 更多