Angular:对象结构的最佳实践

时间:2014-11-16 03:40:01

标签: javascript angularjs javascript-objects

我在Angular工作,目前专注于过滤嵌套对象。这是我的对象的结构:

$scope.subjectBin = {
     "Faculty of Engineering": {
           "ECE": [{<course-object>},{<course-object>}],
           "CHEM: [{<course-object>}]
      },
     "Faculty of Science": {
           "BIOL: [{<course-object>},...],
           ...
      },
      ...
}

当我使用过滤此对象,构建新功能并在分层手风琴中渲染时,我认为我应该更改此对象的设计。

有人建议将对象更改为以下内容:

$scope.subjectBin = [{
    faculty: "Faculty of Engineering",
    subjects: [{
        subjectName: "ECE",
        courses: [{<course-object>},{<course-object>}]
        },
        ...
    ]
}, {
    faculty: "Faculty of Science",
    subjects: [{
        subjectBin: "CMPUT",
        courses: [{<course-object>},...]
        },
        ...
    ]
}]

我被告知这种布局更好,因为:&#34;它没有使用对象作为键图,它遵循一种模式&#34;。

我同意它更好,但一般会对对象布局做一些澄清。

用于布置嵌套对象最佳做法是什么?具有固定键名的基于数组的对象是否更可取?

1 个答案:

答案 0 :(得分:1)

第二个例子好多了。

在第一个示例中,您有一个具有不同字符串键的对象列表(不是硬编码的)。这里的问题是,需要转义那些键,即字符串,以删除标签,逗号或其他有问题的无效密钥字符串。

第二个例子要好得多,因为你有一个带有固定硬编码字符串键的对象数组。定义键时,您将始终知道该对象具有哪些属性,以及每个属性具有哪些内容。

你应该总是努力写这样的对象:

test = {
    property1 : {},
    property2 : [],
    property3 : value
}

其中property1,property2和property3由您硬编码,代表其具体内容。

相关问题