Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs-控制器中的绑定复选框集合_Angularjs - Fatal编程技术网

AngularJs-控制器中的绑定复选框集合

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>

我的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>   
问题:

 <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
将检查过的数据发送到服务器。问题中的答案是什么。。?