Angular 1 - 复杂的ng重复对象/数组
问题描述:
我有一个数组与3个对象,然后1个对象(或更多取决于3个第一个对象的选择),然后5个数组(或更多的根据5个数组的选择)Angular 1 - 复杂的ng重复对象/数组
repeat="item in $ctrl.project[$ctrl.checkProject()].productType[$ctrl.ckeckProductType()]
//method to search for the item
checkProject() {
if (this.project.label === 'business') {
return 0
} else if(this.project.label === 'realEstate') {
return 1
} else if (this.project.label === 'smallBusiness'){
return 2
}
}
而同为ckeckProductType()
方法
是不是有一个更复杂的解决方案,以激励所有这一切?
答
最简单的方法是将结果序列包装到方法中。水木清华这样的:
data-ng-repeat = "object in getMyObjects() track by $index"
有了这个,你会选择逻辑打动你的地方控制它应该是。但是,从性能方面来看这并不好。函数将被称为每个摘要,并会吃掉你的资源。
另一种方法是定义序列的依赖项(this.project.label等)并跟踪它们的更新。当他们更新时,你会改变你的顺序。这种方法需要更多代码,维护起来有点难,但速度稍快(直到你的序列不包含1000+项)
所以这取决于你走什么路。 希望这有助于。
P.S.有第三种方法。将所有合并成一个序列并为此写入过滤器。 P.P.S.最后一个是可能的,但不要这样做,这是一个小晚上的笑话。
当然 - 在控制器中只运行一次**,而不是'return 0/1/2;'保存值:'this.project_label = this.checkProject();'和'this。 project_type = this.ckeckProductType();'然后在循环中使用这些属性:$ ctrl.project [$ ctrl.project_label] .productType [$ ctrl.project_type] –