gpt4 book ai didi

javascript - Angular 1 - 复杂的 ng-repeat 对象/数组

转载 作者:行者123 更新时间:2023-11-28 04:25:27 26 4
gpt4 key购买 nike

我有一个数组,其中包含 3 个对象,然后是 1 个对象(或更多,具体取决于第一个 3 个对象的选择),然后是 5 个数组(或更多,取决于 5 个数组的选择)

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
}
}

对于 ceckProductType() 方法也是如此

难道就没有更复杂的解决方案来激发这一切吗?

最佳答案

最简单的方法是将结果序列包装到方法中。像这样:

data-ng-repeat = "object in getMyObjects() track by $index"

这样您就可以将选择逻辑移至 Controller 应有的位置。但是,从性能方面来看,这并不好。函数将被调用每个摘要并会消耗您的资源。

另一种方法是定义序列的依赖项(this.project.label 等)并跟踪它们的更新。当它们更新时,您将更改您的顺序。这种方法需要更多代码,维护起来有点困难,但速度更快(直到您的序列不包含 1000 多个项目)

所以走哪条路取决于你。希望这会有所帮助。

附注还有第三种方法。将所有内容合并为一个序列并为此编写过滤器。附言最后一种是可能的,但不要这样做,这是一个晚上的小玩笑。

关于javascript - Angular 1 - 复杂的 ng-repeat 对象/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com