私はthis questionと同じ問題がありますが、そこにある解決策は私のためには機能しません。ng-repeatの内部でng-modelを使用してAngularJS形式でデータを送信
私はAngularJSを勉強しており、ng-model
の内部にng-repeat
を使用してフォームデータを送信することに苦労しています。私は、グループのメンバーと、彼らは最後に出席した日付のリストを持っている:
[{"name": "Bob", "attended": "01/01/16"},
{"name":"Steve", "attended": "02/01/16"}]
私はng-repeat
を使用して、すべてのメンバーをリストアップしていて、中にフォームから「出席」フィールドを更新できるようにしたいと思います各行。しかし、私は適切にバインドするために「出席」することはできません。コードは次のとおりです。
<div ng-repeat="member in members">
{{member.name}}
<input type="text" ng-model="attended"></input>
<a href="#" ng-click="setAttended(attended)">Save</a>
</div>
$scope.setAttended = function(attended){
alert('Date: ' + attended);
};
アラートには「Date:undefined」と表示されます。
<div ng-repeat="member in members">
{{member.name}}
<input type="text" ng-model="member.attended"></input>
<a href="#" ng-click="setAttended(member)">Save</a>
</div>
$scope.setAttended = function(member){
alert('Date: ' + member.attended);
};
私はng-repeat
は、各オブジェクトの新しいスコープを作成することを取得し、それらのスコープは、親スコープからsetAttended
継承:私はまた、プリミティブの代わりにオブジェクトを使用してみました。親スコープが子スコープで何が起こっているのかわからないので、パラメータはそれを知らせなければなりません。
なぜ私のパラメータに入力値が含まれていませんか?
setAttended
を実行する前に入力がモデルに正しくバインドされていませんか?
@capnmojo:plsは働いていると認めます。あなたのためですか? – kukkuz
あなたはそうです、うまくいきます。問題は、私がフィールドで使用しているJQueryの日付ピッカーだったことが分かります。 datepickerから日付を選択すると、モデルは更新されません。日付を選択して手動でフィールドに何かを入力すると、モデルが更新されます。 – capnmojo