Как передать динамическую переменную внутри ng-repeat - PullRequest
0 голосов
/ 24 октября 2018

У меня есть массив с именем с текущим идентификатором внутри моей функции:

$scope.expand = function(hodid, supid, leader_id, staff_id, importance){
  var tr_id = 'expand_tree_'+hodid;

В выводе на консоль это будет выглядеть так: expand_tree_1000321 Вот так мой массив будет выглядеть в конце:

  $scope[tr_id] = {firstLevel:[$scope.firstLevelLst], secondLevel:[$scope.secondLevelLst], thirdLevel:[data_third]};
};  

Теперь я хочу напечатать $scope[tr_id] внутри ng-repeat, где tAttrs.treeid - это идентификатор выбранного пользователя:

<div  ng-repeat="first in ['expand_tree_'+tAttrs.treeid].firstLevel['0']">
  {{first.username}}
</div>

Но он ничего не печатает.Как я могу напечатать массив области действия внутри ng-repeat с динамической переменной?

1 Ответ

0 голосов
/ 24 октября 2018

Во-первых, похоже, что вы используете $scope в качестве объекта данных.Это не хорошо по нескольким причинам.Вместо этого используйте объект в области видимости:

$scope.data = {};

и сохраняйте данные следующим образом:

$scope.data[tr_id] = {
    firstLevel: [$scope.firstLevelLst],
    secondLevel: [$scope.secondLevelLst],
    thirdLevel: [data_third]
};

Но не переносите свойства в массив, поскольку они уже являются массивами:

$scope.data[tr_id] = {
    firstLevel: $scope.firstLevelLst,
    secondLevel: $scope.secondLevelLst,
    thirdLevel: data_third
};

Затем вы можете просмотреть first, например:

<div ng-repeat="first in data['expand_tree_' + tAttrs.treeid].firstLevel">
    {{first.username}}<br />
</div>

Вот Рабочая скрипка

...