2016-05-26 16 views
0

動的に生成される入力に問題があります。 どのように値を取得できますか?AngularJSの動的モデル名

<p ng-repeat="(key, value) in selectedTemplate.attributes.Params.attributes"> 
    {{key}} : <tr><input ng-model="params[key]" type="text" placeholder="{{value}}" > 
</p> 

//attributes are like this 
"attributes": { 
    "End Date": "java.sql.Timestamp", 
    "Containers": "java.lang.Object", 
    "Begin Date": "java.sql.Timestamp" 
} 

ありがとうございました。

+0

ハイテクデモを作ってください、私は –

+0

モードのコードを入力してくださいすることができ、好ましくはplunkerとして(https://plnkr.co/)手伝う。 – Brian

+0

デモを行う必要があります。 – WorkWe

答えて

1

コントローラーに$scope.params = {}と宣言してください。 とあなたがして値にアクセスできる後:私はNG-モデル名と簡単な例を作成し、それに従うと、あなたのケースに適用されますHere

:私はあなたのためのデモを持って $scope.params['End Date']$scope.params['Containers']$scope.params['Begin Date']

0

最初の問題は、ng-repeatスコープ内でparamsが作成されることです。だから、あなたは、コントローラの初期化の内側にそれを宣言する必要があります。

$scope.params = []; 

そして、あなたの変数をループに、あなたは、コントローラ内部で、次の操作を行うことができます

for (var key in attributes) { 
    if (attributes.hasOwnProperty(key)) { 
    alert($scope.params[key]); 
    } 
} 

ところで、paramsはAです予約されたキーワード。それを使用すると、一部のブラウザで失敗する可能性があります。

0

HTML:

<p ng-repeat="(key, value) in attributes track by $index"> 
    <input ng-model="params[key]" type="text" placeholder="{{value}}" > 
</p> 

<p>{{params}}</p> 

コントローラ:

$scope.attributes = { 
    "End Date": "java.sql.Timestamp", 
    "Containers": "java.lang.Object", 
    "Begin Date": "java.sql.Timestamp" 
}; 

// You should create params variable. 
$scope.params = {}; 
関連する問題