У меня есть цикл ng-repeat, который проходит через массив json.Массив извлекается через $ http.В этом цикле я хочу добавить некоторые переменные в объект json, которые пригодятся при сравнении старых значений / изменений.
<li class="machine" ng-repeat="machine in machines>
....
<input id="machine-host" ng-model="machine.host"
ng-init="machine.editHostDisabled=true;machine.originalHost=machine.host"/>
......
</li>
Я прочитал в документации angularjs, что вы не можете или не должны использоватьнг-INIT.Но здесь кажется странным не использовать эту директиву.Приведенный выше код является простым и понятным.Да, я могу установить его в контроллере, но затем мне нужно пройтись по массиву json машин и установить значения в цикле.Кажется, слишком много хлопот.
Эта директива может быть использована для добавления ненужного количества логики в ваши шаблоны.Существует только несколько подходящих вариантов использования ngInit: псевдонимы специальных свойств ngRepeat, как показано в демонстрации ниже.инициализация данных во время разработки или, например, как показано в этих документах.внедрение данных с помощью сценариев на стороне сервера.Помимо этих нескольких случаев, вы должны использовать Компоненты или Контроллеры вместо ngInit для инициализации значений в области.
- Справочник по AngularJS ng-init API - Обзор
Конечно, я понимаю, что обширная функция может вызвать проблемы здесь.Но эта простая строка кода ...?
Кроме того, я вижу текущий способ работы многих примеров по всей сети.
Какое здесь правило следовать?Добавление функции контроллера в ng-init?Но это было бы то же самое, верно?Или приведенный выше код в порядке?