Вдохновленный из этого кодекса, я использовал 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
- возможно, это не делает двустороннюю привязку?
Вам нужно использовать 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>
item
илиitem.property
..