AngularJS создает json из ng-repeat

0

Вдохновленный из этого кодекса, я использовал JSON file для загрузки некоторых основных полей ввода и переключений. Когда пользователь что-то изменит и нажмите "Сохранить", я хотел бы сохранить эти новые property values в новом JSON object с одинаковыми property names.

Мой код выглядит следующим образом:

JS

.controller('page', function($scope, templateSettingsFactory, savedSettingsFactory) {
  $scope.template = templateSettingsFactory;    
  $scope.saved = savedSettingsFactory;    
  $scope.saveSettings = function(){                                  
                              var temp = $scope.template;
                              var jsonObj = {};
                              for(var key in temp){
                                jsonObj[key]=temp[key];
                              }
                              $scope.saved.$add(jsonObj);
                        };
});

HTML

<label ng-repeat="item in template">
     <input type="text" placeholder="{{item}}">
</label>

<button class="button" ng-click="saveSettings()">Save</button>

Проблема в том, что вызов saveSettings() не получает обновленных property values $scope.template - возможно, это не делает двустороннюю привязку?

Теги:
ionic-framework

1 ответ

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

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

<input type="text" ng-model="item.property">

Ниже приведен пример привязки к одному объекту с произвольными ключами:

  <div ng-repeat="(key,value) in template">
    <div>{{key}}</div>
   <input type="text" ng-model="template[key]"/>
  </div>

https://docs.angularjs.org/api/ng/directive/ngModel

  • 0
    Извините, но это не подходит для добавления item или item.property ..
  • 0
    Это действительно все зависит от вашего ввода JSON. stackoverflow.com/a/13715352/580487
Показать ещё 5 комментариев

Ещё вопросы

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