2016-05-17 50 views
0

受此啓發codepen我使用JSON file加載一些基本輸入字段和切換。當用戶更改某些內容並按下保存時,我想將這些新的property values保存在一個新的JSON object中,並使用相同的property namesAngularJS從ng-repeat創建json

我的代碼看起來這

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()沒有得到更新的$scope.templateproperty values - 也許它沒有做tw o-way綁定?

回答

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'或'項目.property' .. – Norfeldt

+0

這一切都取決於你的JSON輸入。 http://stackoverflow.com/a/13715352/580487 – tommybananas

+0

它不是我ng-repeat循環遍歷的對象數組,它只是對象中的所有屬性名稱及其值。 – Norfeldt