Предположим, у меня есть:

$scope.head1="abc";
$scope.head2="bfc";
...
...
$scope.head12="bfc";

И я делаю это:

<div ng-repeat="count in [3,4,5,6,7,8,9,10,11,12]" class="padding-top-10">
  <span>{{head + count}}</span>
</div>

Я хочу получить значения head1, head2, head3 .. head12 в div. Как это сделать ?

1
Daud 23 Мар 2017 в 17:34

2 ответа

Лучший ответ

Ты можешь сделать это

<div ng-repeat="count in [1,2,3,4,5,6,7,8,9]" class="padding-top-10">
       <span>{{$parent['head'+count]}}</span>
   </div>
</body>

Таким образом, вам не нужна дополнительная функция области видимости, чтобы получить значения из ваших переменных области видимости. $ parent необходим, потому что ваш ng-repeat создает собственную область видимости.

Angular docs -> ng Repeat - директива в модуле ng Директива ng Repeat создает шаблон один раз для каждого элемента из коллекции. Каждый экземпляр шаблона получает свою собственную область,

1
Arno_Geismar 23 Мар 2017 в 14:51

По какой причине ты этого не делаешь?

$scope.head = ["abc", "bfc", ..., "bfc"];

Посмотреть:

<div ng-repeat="count in [3,4,5,6,7,8,9,10,11,12]" class="padding-top-10">
  <span>{{ head[count - 1] }}</span>
</div>

Если это не вариант, вы можете определить этот метод:

$scope.getHead = function (num) {
    return $scope["head" + num];
};

А потом:

<div ng-repeat="count in [3,4,5,6,7,8,9,10,11,12]" class="padding-top-10">
  <span>{{ getHead(count) }}</span>
</div>
3
JLRishe 23 Мар 2017 в 14:37