Переключение между массивами с помощью ng-repeat

0

Прямо сейчас у меня есть 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. Но это не очень хорошо. Особенно при переключении между заполненными массивами в пустой массив.

Теги:
arrays

1 ответ

1

Вы можете просто переключить ключ и использовать нотацию кронштейна в источнике ng-repeat.

 <li ng-repeat="data in fooDataObj[vm.source] track by data.id"></li>

и на кнопке нажмите set vm.source для text array1, array2, array3. Если вы хотите сделать это динамическим производным ключом вместо hardcoding, тогда просто получите ключи от объекта как Object.keys(fooDataObj)

  • 0
    Это работает, спасибо! но это все еще кажется медленным при удалении элементов заполненных массивов из DOM.
  • 0
    У вас есть демоверсия, показывающая медлительность? Это очень простая вещь, позволяющая получить доступ к значению объекта на основе ключа. Замедление может быть связано с другими вещами, которые вы делаете. Попробуйте изолировать проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню