AngularJs-控制器中的绑定复选框集合
我的Html:AngularJs-控制器中的绑定复选框集合,angularjs,Angularjs,我的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 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>
问题:
<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>
GCWRs正在表单中填充,但我在提交/保存函数ad中收集选中的GCWRs时出错,将集合添加到新容器中
有什么想法吗
——在棱角分明的世界里,永远不会有枯燥的一天:(
已解决:
<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>
真讨厌!!!TGIF因为现在我有理由了
以下是解决方案:(对不起,我更改了原帖子中的一些名称)
[注意:如果我使用angular.copy,angular在ng repeat中创建的$$hashkey将不会被剥离;因此,服务器将拒绝此集合,因为它将具有与服务器上的模型类不匹配的额外属性,即$$hashkey。只需将集合传递给容器,即可剥离$$hashkey是的,服务器很高兴。]我认为您需要使用
var myGCWRS = [];
var tmp = angular.forEach($scope.gcwrs, function (gcwr) {
if(gcwr.checked) {
myGCWRS.push(gcwr);
}
});
newContainer.GCWRs = angular.copy(myGCWRS);
我不确定您是否需要任何新容器。使用angular的双向绑定,gcwrs数组始终是最新的。当您准备好处理所选元素时,只需查看数组 以下是一个plnkr,它演示了:
请注意,在勾选/取消勾选复选框时,对象状态会发生变化。已解决:
<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>
真讨厌!!!TGIF因为现在我有理由了
以下是解决方案:(对不起,我更改了原帖子中的一些名称)
…然后继续保存新容器
[注意:如果我使用angular.copy,angular在ng repeat中创建的$$hashkey就不会被剥离;因此服务器会拒绝此集合,因为它会有一个额外的属性,即$$hashkey,与服务器上的模型类不匹配。只需将集合传递给容器,$$hashkeys被剥离,服务器很满意。]就我测试它而言,这不起作用。但我感谢你的帮助。你几乎成功了,“angular.copy”就是问题所在。容器是服务器端类。它与angular本身无关。啊,好吧,因此,如果你查看plnkr,你可以看到一个函数
$scope.save()
,在该函数中,您可以使用$http
或$resource
将检查过的数据发送到服务器。问题中的答案是什么。。?