私のHTML:
<ol ng-model="gcwr.checked" ng-repeat="gcwr in gcwrs" id="gcwr">
<label class="checkbox" for="{{gcwr.Id}}">
{{gcwr.Description}}
<input ng-model="gcwr.checked" type="checkbox" /></label>
</ol>
私のコンテナコントローラ:
// initialize section
$scope.gcwrs = API.GetGCWRs();
// in the save/submit function
var newContainer = $scope.newContainer;
var myGCWRS;
var tmp = angular.forEach($scope.gcwrs, function (gcwr) {
myGCWRS += gcwr.checked ? gcwr : null;
});
newContainer.GCWRs = [
angular.copy(myGCWRS)
];
問題:
GCWR はフォームに取り込まれていますが、コレクションを newContainer に追加する送信/保存機能広告でチェック済みの gcwr を収集する際に何か問題があります。
何か案は?
-- 角ばった世界で退屈な一日はありません :(
解決済み:
なんてお尻の痛み!!! TGIF 理由があるからです。
解決策は次のとおりです:(申し訳ありませんが、元の投稿からいくつかの名前を変更しました)
var selectedGCWRs = [];
var tmp = angular.forEach($scope.gcwrs, function (gcwr) {
if (gcwr.checked) {
selectedGCWRs.push(gcwr);
}
});
newContainer.GCWRs = selectedGCWRs;
.... then go on and save the newContainer.
[注: angular.copy を使用していた場合、Angular が ng-repeat で作成する $$hashkeys は取り除かれませんでした。サーバー上のモデル クラスと一致しない余分なプロパティ、つまり $$hashkey があるため、サーバーはこのコレクションを拒否します。コレクションをコンテナーに渡すだけで、$$hashkeys が取り除かれ、サーバーは満足します。]