现在我有3个阵列,我想用我的ng-repeat切换:
$scope.fooDataObj = {
array1:[{name:'john', id:'1'},{name:'jerry', id:'2'}],
array2[{name:'bill', id:'1'},{name:'tom', id:'2'}],
array3:[]
}
和我的ng-repeat:
<li ng-repeat="data in fooDataObj track by data.id"></li>
所以我想做的就是以最高效的方式在我的对象中动态切换我的数据数组。
所以基本上当点击<button></button>
时,它会从使用array1
中的ng-repeat
更改为array2
。
我通过设置ng-repeat="data in fooData"
然后点击触发$scope.fooData = fooDataObj.array1
来完成此操作。但这不是很有效。特别是在填充的数组之间切换到空数组时。
答案 0 :(得分:1)
您只需在ng-repeat源中切换键并使用括号表示法。
<li ng-repeat="data in fooDataObj[vm.source] track by data.id"></li>
并点击按钮,将vm.source
设置为文字array1, array2, array3
。如果您想使其成为动态派生键名而不是硬编码,那么只需从对象获取键Object.keys(fooDataObj)