【发布时间】:2014-03-31 21:12:46
【问题描述】:
我正在使用 AngularJs ui 引导模式。我有一个带有复选框的页面。当用户选中复选框并单击按钮时,它将选中的复选框传递给模态:
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
resolve: {
checkedSearches: function () {
var checkedSearches = [];
angular.forEach($scope.searches, function(search)
{
if(search.checked) {
checkedSearches.push(search);
}
});
return checkedSearches;
}
}
});
在我的模式中,我们再次将数据重新显示为复选框。用户可以选择/取消选中复选框并单击保存,它将保存所有选中的复选框。
var ModalInstanceCtrl = function ($scope, $modalInstance, checkedSearches) {
$scope.checkedSearches = checkedSearches;
var saveSearches = [];
angular.forEach($scope.checkSearches, function(search)
{
if(search.checked) {
saveSearches.push(search);
}
});
}
问题是,它正在保存所有复选框。似乎选中的属性与复选框保持一致,即使用户在模式中取消选中它也是如此。我没有包含保存搜索的代码。我基本上推到了 searchSearches 数组,它似乎推了所有的复选框,包括未选中的。
这是我的复选框视图/模式:
<tr ng-repeat="search in checkedSearches">
<td><input type="checkbox" ng-checked="search.checked" name="search" ng-model="search.checked" /></td><td>{{search.id}}</td><td>{{search.name}}</td>
</tr>
【问题讨论】:
标签: javascript angularjs twitter-bootstrap checkbox angular-ui-bootstrap