2017-04-20 9 views
0

ng-modelによってプロパティmodelParams.valueにバインドされた簡単なAngularJS動的フォームがあります。各フォームフィールドにはmodelParams.valueの値が表示されますが、すべてのフォームフィールドの値をmodelParams.defaultValueまたはmodelParamsなどのこの関連配列の他のプロパティに設定する「Default」というボタンがあります。 oldValue。 "Default"ボタンを押すと、ng-model = "modelParams.value"の値が上書きされると思います。ここでAngularJS:フォームフィールドからさまざまなオブジェクトプロパティへの設定値

は形式です:

[{"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> 

EDIT:ここで働いてデモです:http://jsfiddle.net/zy94an54/

+0

あなたは少し手の込んだてくださいすることができ

<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は、このようになります。この時点で、ng-repeatを介してmodelParamsの各オブジェクトを取得しています。私はあなたがmodelParam.valueを$ scope.fieldに設定し、次にmodelParam.otherValueをchange()メソッドの 'old value'に設定したいと思いますか?それは私のコントローラのmodelParams配列をループする必要があるということですか? – MadCatm2

+0

私がしたいことは、modelParamプロパティのインデックスとして変数を使用することです。 jsFiddleを確認してください。それはもっと明確になるはずです – yBrodsky

+0

ああ、少なくともフォームの値を変更するとうまくいきました。ただし、「デフォルト」をクリックするとフォームに入力される「古い値」はデータベースを更新していません。つまり、フォームに表示されますが、click = "updateModelParams(modelParams、modelParamsForm)"を呼び出すと、実際には値が実際に存在しないかのようになります。 – MadCatm2

関連する問題