AngularJS从ng-repeat创建json

时间:2016-05-17 21:41:23

标签: javascript angularjs json ionic-framework

受此启发codepen我使用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 - 也许它没有进行双向绑定?

1 个答案:

答案 0 :(得分: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