使用ngRepeat迭代复杂对象以生成输入

时间:2017-06-16 18:58:51

标签: javascript angularjs angularjs-ng-repeat

使用AngularJS,我需要使用ngRepeat生成Web应用程序的设置以生成每个输入。设置对象的示例如下:

// in HostController where var host = this
host.settings = {
  section: {
    property: {name: "Option title", value: 1024},
    property: {name: "Option title", value: false},
    property: {name: "Option title", value: "#000000"},
  },
  section: {
    dropdownPproperty: {name: "Option title", value: "a", values: ["a", "b", "c", "d"]}, 
    dropdownProperty: {name: "Option title", value: "g", values: ["e", "f", "g", "h"]},
  },
  section: {
    group: {
      property: {name: "Option title", value: 0.9},
      property: {name: "Option title", value: 1.2},
    },
    group: {
      property: {name: "Option title", value: 1},
      group: {
        property: {name: "Option title", value: 0.5},
      },
    },
  },
  section: {
    property: {name: "Option title", value: false},
  }
};

请注意,在此示例中,对象的各个部分已被命名为它们应该是什么,例如section / property / group - 因此这些名称不能用于标识。

设置对象分为不同的部分。所有部分都在对象的第一级。每个部分至少应该有自己的<div>

每个属性都应该有自己的<input> - 输入类型应该取决于属性的值(例如number / boolean(checkbox)/ text)。

如果属性应该是一个下拉列表(即有一个值数组),那么它应该是一个下拉列表。

我想忽略群组 - 每个群组的属性应该重复,好像群体根本不存在一样。

我以前曾经使用过很多次ngRepeat,但只是为了简单地迭代 - 这样的任务对我来说似乎很复杂,我甚至不知道它是否可能。我该怎么做呢?

非常感谢您的任何建议和/或帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用过滤器来排除这样的组 https://docs.angularjs.org/api/ng/filter/filter