我正在使用angularjs构建一个CRUD应用程序。目前,我在控制器中直接使用从后端返回的json模型。这些模型具有3-4层深层次结构。所以我的控制器代码看起来像这样
$scope.prop1 = object1.object2.object3
...我想知道我是否应该将我的控制器与这些后端模型解耦。因此,不要直接使用模型对象,而是创建新的(展平的)模型,然后在控制器中使用它们。这是推荐的做法吗?这样做的优点/缺点是什么?
发布于 2015-12-02 08:50:29
我的建议是检查你从后端传递的对象的域。object1真的包含object2吗?这些对象是连接在一起的,还是返回起来很方便?
说到AngularJS --没有任何不同。您可以使用与$watch('object3')几乎相同的性能影响进行$watch('object1.object2.object3')。如果object2不包含object3,则不会出现任何错误。这将有一个非常小的区别,因为$parse会将你的表达式解析为AST,并且计算它将花费更长的时间遍历到第三个对象。但这种差异是如此之小,因此很难被注意到。
因此,我建议不要“扁平化”或“标准化”到严格的层次结构中,而是尝试弄清楚对象之间的真实关系。即使在开始时你看不到任何区别,以后它也会用更高的可维护率来回报你。
https://stackoverflow.com/questions/34029593
复制相似问题