0
我正在使用AngularJs ui bootstrap模式。我有一个复选框的页面。当复选框用户检查并点击一个按钮,它把选中的复选框的模式:Angularjs UI Bootstrap模式 - 复选框选中状态不更新
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>
使用ng-model(和ng-change如果您需要处理事件)可以解决此问题: http://stackoverflow.com/a/16601110 – user2173353