我有复杂的json对象(超过100个项目),我需要使用ngRepeat
指令运行某些值,并且只显示一个值。
复杂对象
$scope.complicatedList = [
{
"id": 1,
"value": [
{
"data": {
"otherdata": "sss"
}
}
]
},
....
];
另一方面,我想创建从复杂的对象生成的新对象并使用新创建的对象(例如使用下划线)
复杂对象的简短版本
$scope.shortVersionList = [
{id: 1, "otherdata": "sss1"},
{id: 2, "otherdata": "sss2"},
{id: 3, "otherdata": "sss3"},
...
{id: 100, "otherdata": "sss3"}
];
我之前试着去理解:是否应该有任何性能差异?
我使用在iOS / Android(Cordova + Ionic)上运行的angular,我不知道它是否可以存储两个版本的Object(实际和简短版本)或只存储一个对象和游戏仅限HTML。
谢谢,
答案 0 :(得分:1)
最好有一个单独的服务/方法返回短对象,而不是在html渲染阶段过滤它,因为它会减慢渲染速度。虽然对于标准硬件上的普通浏览器,差异可以忽略不计,在您的情况下,使用ios / android设备,我建议使用单独的对象。
编辑:
但是,请注意,在性能方面,两者之间不存在任何可衡量的差异:
<div data-ng-repeat="complicatedItem in complicatedList">
{{complicatedItem.nested.moreNested.evenMoreNested.someValue}}
</div>
vs
<div data-ng-repeat="simpleItem in simpleItemList">
{{simpleItem.someValue}}
</div>
我试图告诉你的是,ng-repeats中没有逻辑和/或添加额外的ng-repeats。如果不是这种情况并且可以在不添加额外的ng-repeats的情况下呈现数据,那么我向您展示的第一个和第二个变体将具有相同的性能。第二个是可读性稍好一些,但需要维护两种服务方法的成本。