Угловая генерация нескольких нг-повторов

0

В моем угловом применении (угловое 1.4.9) у меня проблема, когда при этом возникает несколько ng-повторов:

HTML:

<div class="form-group col-md-3">
  <input ng-model="main.startLocation" ng-change="main.getAddressSuggestions(main.startLocation, 'startLocation')" type="text" class="form-control input-lg" placeholder="fx. Aarhus" tabindex=1 name="country" [![enter image description here][1]][1] />

  <label>or select a location from list:</label>
  <div ng-repeat="suggestion in main.startLocationSuggestions">
    <span>{{suggestion}}</span>
  </div>

</div>

controller.js

getAddressSuggestions(address, inputName) {
  if (inputName === "startLocation") {

    /*                  var tmpArray = data;
     for(var item of tmpArray)
     this.startLocationSuggestions = data;*/
    this.startLocationSuggestions = ['dada', 'daa'];
  }
}

Но сгенерированный HTML в dom: Изображение 174551

Почему угловые повторяют ng-повторы?

Теги:
angularjs-ng-repeat
ng-repeat

3 ответа

1
Лучший ответ

Если вы не хотите повторять родительский элемент, вот html:

<div >
  <span ng-repeat="suggestion in startLocationSuggestions">{{suggestion}}</span>
</div>

Выход будет следующим:

<div>
  <!-- ngRepeat: suggestion in startLocationSuggestions -->
  <span ng-repeat="suggestion in startLocationSuggestions" class="ng-scope ng-binding">dada</span>
  <span ng-repeat="suggestion in startLocationSuggestions" class="ng-scope ng-binding">daa</span>
</div>

Так работает ngRepeat.

1

Поскольку он просто принимает ваш шаблон как есть (div ng-repeatate lalala), клонирует его N раз, заполняет данные и помещает их в DOM.

1

это в основном то, как работает ng-repeat! в начале он пишет комментарий вроде:

<!-- ngRepeat: x in items -->

затем для каждого элемента, созданного с помощью ng-repeat, после его создания (с атрибутом ng-repeat внутри), пишет другой комментарий:

<!-- end ngRepeat: x in items -->

Ещё вопросы

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