2016-07-15 8 views
0

でNG-バインドを割り当て、残念ながら私は、サードパーティから動的に私はこのようなデータと同じようにJSONを持っている形

$scope.mydata = { 
    "SOB0": "7", 
    "SOB1": "70", 
    "SOB2": "790", 
    ... 
    ... 
    "wb0": "7", 
    "wb1": "17", 
    "wb2": "8", 
    ... 
} 

来るデータを修正することはできません問題がJSONで受信したデータは常に同じではないです1つのattr SOB0または複数のSOB0、SOB1、SOB2のうちの1つまたは複数である可能性のある属性の数for、numberに基づいて入力フィールドにこのデータをバインドしたいたとえば、「SOB」タイプが3つしかない場合のJSONの属性の数

{"SOB0": "7", "SOB1": "70","SOB2": "790"..} 

input ng-model="mydata.SOB0" size=6 
input ng-model="mydata.SOB1" size=6 
input ng-model="mydata.SOB2" size=6 

ng-model="mydata.SOB+$index" のように補間する方法や、JSONに基づいて動的にバインドする関数を呼び出す方法はありません。

ご協力いただければ幸いです。

答えて

0

私はHTMLでこの

//inside angular controller 
$scope.values = {}; 

のように$スコープ辞書に入力のすべての私の価値を置く:

<div ng-repeat="i in Object.Keys(mydata)"> 
    <input ng-model="values[i]"> 
</div> 

Object.keys(オブジェクト)すべてのキーを持つ配列を返します。この場合、変数 'i'はSOBキーになるので、すべての入力は入力された値を参照するためにキーを使用する動的辞書にバインドされます

+0

ありがとう!私の問題を解決するためにあなたのソリューションを使いました! https://plnkr.co/edit/bmbDTcFnnG7tfxRZf6Rt?p=preview – PortalGuy

+0

私は助けてくれると嬉しいです –

1

あなたがリンクをチェックすることができ

https://plnkr.co/edit/ofd2UaDes4oaxxjj4PcU?p=preview

<div ng-repeat="a in states track by $index"> 
     <input type="text" value={{a}}> 
     </div> 
+0

ありがとう双方向バインドは機能していないようです。 – PortalGuy

+0

Thats bcoz入力要素にng-modelを追加していません –

+0

ありがとうPankaj、どうやってクレジットをもらえますか? – PortalGuy

0

変数オブジェクトのプロパティ名用JavaScriptで[]表記

<input ng-model="mydata[ 'SOB' + $index ]"> 

mydata

<div ng-repeat="(key, val) in mydata"> 
    <input type="text" ng-model="mydata[key]"> 
</div> 
を反復処理するために使用します
関連する問題