2016-06-27 8 views
1

ng-repeatの繰り返し変数をng-modelの一部として使用しようとしていますが、これがコントローラに渡されてMongoDBに挿入されます。下記のHTMLでng-repeatのng-modelの角流使用

私は本当に、各列のフィールドに入力

<input... ng-model="tablesList.person.{{column.field}} /> 

しかし、これはエラーを生成したい場合は、私が

<input... ng-model="tablesList.person.lastName /> 

を使用していました。どちらもありません

<input... ng-model="tablesList.person.column.field /> 

これは、column.fieldを文字列として取ります。

これを動作させる方法はありますか?私はgetter/setter関数を使用しようとしましたが、これを正しく行う方法や必要があるかどうかはわかりません。

HMTL:

<form name="newTableRowForm" novalidate ng-cloak> 
    <td ng-repeat="column in tablesList.ammiTables"> 
     <md-input-container flex class="md-block"> 
     <input type="text" ng-model="tablesList.person.lastName" /> 
     </md-input-container> 
    </td> 
    <td> 
     <md-button ng-click="tablesList.submit()" class="md-primary" ng-disabled="newTableRowForm.$invalid" aria-label="send"> 
     Submit <md-icon md-svg-icon="content:ic_send_24px"></md-icon> 
     </md-button> 
    </td> 
</tr> 
</form> 

コントローラの一部を提出:

submit() { 
    this.person.owner = Meteor.user()._id; 
    Persons.insert(this.person); 

    if(this.done) { 
    this.done(); 
    } 

    this.reset(); 
} 

答えて

0

NGモデルは、オブジェクトであるべきです。 NGリピートなし

$scope.lines = [ 
    { 
     text: 'res1' 
    }, 
    { 
     text: 'res2' 
    } 
    ]; 

<input type="text" ng-model="lines[0].text"> 

ngのリピートを持つ:

<div ng-repeat="line in lines"> 
    <input type="text" ng-model="line.text[$index]"> 
</div> 

チェックこの回答:https://stackoverflow.com/a/14411131/3967587

このフィドル:https://jsfiddle.net/win_web/hrok3944/

更新

あなたは依然として質問に対する回答を探していますが、フィドルを作成してください。

関連する問題