2017-04-20 74 views
0

我有一個簡單AngularJS由NG-模型綁定到一個屬性modelParams.value動態形式。每個表單字段顯示modelParams.value的值但是,我想要一個名爲「Default」的按鈕,它將所有表單字段的值設置爲此關聯數組中的某個其他屬性,例如modelParams.defaultValue或modelParams。屬性oldValue。我假設一旦按下「默認」按鈕,就會覆蓋ng-model =「modelParams.value」的值。AngularJS:表單字段的設定值至各對象屬性

下面的形式:

<form name="modelParamsForm">     
    <div class="form-group" ng-repeat="modelParam in modelParams"> 
     <div class="row"> 
     //INPUT FORM FIELDS 
     <input type="number" class="form-control input-sm" required ng- 
     model="modelParam.value" > 
     </div> 
    </div> 

    <button class="btn btn-primary btn-sm" ng- 
     click="updateModelParams(modelParams, modelParamsForm)"> 
    </button> 
    //DEFAULT BUTTON 
    <button type="button" class="btn btn-default btn-sm" ng- 
    click="default()">Default</button>   
</form> 

我的JSON是這樣的:

[{"model":"MAF","paramname":"CascDefaultSpreadOverride","minvalue":"0","maxvalue":"100","description":"The defaault repo spread override to use for CASC positions.","defaultvalue":1.0,"value":1.0,"datatype":"FLOAT"},{"model":"MAF","paramname":"DefaultLotSize","minvalue":"1","maxvalue":"1000","description":"The minimum lot size that must be met for a collateral allocation.","defaultvalue":1.0,"value":1.0,"datatype":"INTEGER"},{"model":"MAF","paramname":"HtbColdHaircut","minvalue":"0","maxvalue":"100","description":"The haircut to apply to positions with a Cold HTB category.","defaultvalue":0.1,"value":0.1,"datatype":"FLOAT"},{"model":"MAF","paramname":"HtbExtraHotHaircut","minvalue":"0","maxvalue":"100","description":"The haircut to apply to positions with a Extra-Hot HTB category.","defaultvalue":0.9,"value":0.9,"datatype":"FLOAT"},] 

回答

1
$scope.field = 'value'; 

$scope.change = function() { 
    $scope.field = 'oldValue'; 
} 


...ng repeat blabla 
<input ng-model="modelParam[field]"/> 
... 
<button ng-click="change()">Change</button> 

編輯:這裏是一個工作演示:http://jsfiddle.net/zy94an54/

+0

能否請您詳細一點。在這一點上,我通過ng-repeat獲取modelParams中的每個對象。我想你希望我將modelParam.value設置爲$ scope.field,然後將modelParam.otherValue設置爲change()方法中的「舊值」...?這是否意味着我還必須在我的控制器中循環modelParams數組? – MadCatm2

+0

我想要你做的是使用一些變量作爲modelParam屬性的索引。檢查jsFiddle,它應該更清楚 – yBrodsky

+0

哦,這工作,至少在改變表單中的值。但是,一旦我們點擊Default,填充表單的'oldvalues'不會更新數據庫。也就是說,它們出現在窗體中,但是一旦您調用click =「updateModelParams(modelParams,modelParamsForm)」,就好像這些值實際上並不存在一樣。 – MadCatm2