Является ли использование ng-init для привязки действительным в угловых js?

У меня есть коллекция значений, структура которых позволяет предположить, что

var a = [{id:1, value:12, name="one"}, {id:2, value:34, name="two"},...]

Я хотел отобразить это в серии элементов управления, чтобы пользователь мог изменить значения. но с этим я также хотел показать оригинальные значения, которые, очевидно, не должны меняться.
я нашел способ, который работает, и мой код примерно такой, используя ng-init

 <div ng-repeat="p in a">
  <div class="control-group" ng-if="p.value>0">
    <label class="control-label" ng-bind="p.name"></label>
    <div class="controls controls-row" ng-init="v=p.value">
      <input class="span1" value="{{v}}"/>
      <input type="number" ng-model="p.value" class="span2" />
    </div>
  </div>
</div>

Будучи полным новичком в angularjs, я не знаю, какое это может иметь значение, поскольку у меня очень мало опыта размышлений о $watch и производительности.

Это нормально?

1 ответ

Решение

но с этим я также хотел показать оригинальные значения, которые, очевидно, не должны меняться.

использование angular.copy(/* array */), Это создаст новую копию (экземпляр) старого массива.

КСТАТИ a Коллекция должна быть определена как $scope.a

Демо Фиддл

Другие вопросы по тегам