Angular 清单模型取消选中也会删除日期
Angular checklist model uncheck removes date too
所以我正在使用一个名为 angular-checklist-model 的插件,它调用一个 ng-repeat,它根据提供的值构建一个数据列表。每个日期都有一个重合的复选框,以允许用户取消选中要提交的值。我遇到的问题是用户取消选中一个框,但该框和日期消失了,而不仅仅是被取消选中。不知道我哪里出了问题。这是我的代码:
控制器提取日期(这也有点像验证日期等。):
$scope.getRecurDates = function() {
if (!$scope.validateDates()) return;
console.log('dates are valid')
if ($scope.editMode) {
recurDateCrit.recurClaimId = $scope.recurInfo.id;
recurDateCrit.benefitId = null;
} else {
recurDateCrit.benefitId = $scope.recurInfo.benefitId;
recurDateCrit.recurClaimId = null;
}
recurDateCrit.interval = $scope.recurInfo.intervalId;
recurDateCrit.fromDate = $scope.recurInfo.fromDate;
recurDateCrit.toDate = $scope.recurInfo.toDate;
recurService.getRecurDates($scope.transId, recurDateCrit).then(function(results) {
$scope.recurringDates = results.data;
$scope.recurInfo.dates = results.data;
console.log('dates received')
}, function(response) {
console.log('error occurred retrieving dates')
$scope.errMsg = errorService.getAllErrs(response.data);
});
};
以及我认为创建这个的部分:
<div class="form-group col-md-12 dateArea">
<p class="input-group" ng-repeat="recurDate in recurringDates">
<input type="checkbox" name="recurringdate" checklist-model="recurInfo.dates" checklist-value="recurDate">{{ recurDate.date }}
</p>
</div>
问题是 recurringDates
和 recurInfo.dates
都指向同一个 results.data
。一个应该是所有选项,另一个应该是选中的选项。
试试这个
$scope.recurringDates = results.data.slice();
$scope.recurInfo.dates = results.data.slice();
我假设 results.data
是一个数组,我使用 slice
创建了一个浅表克隆..
所以我正在使用一个名为 angular-checklist-model 的插件,它调用一个 ng-repeat,它根据提供的值构建一个数据列表。每个日期都有一个重合的复选框,以允许用户取消选中要提交的值。我遇到的问题是用户取消选中一个框,但该框和日期消失了,而不仅仅是被取消选中。不知道我哪里出了问题。这是我的代码:
控制器提取日期(这也有点像验证日期等。):
$scope.getRecurDates = function() {
if (!$scope.validateDates()) return;
console.log('dates are valid')
if ($scope.editMode) {
recurDateCrit.recurClaimId = $scope.recurInfo.id;
recurDateCrit.benefitId = null;
} else {
recurDateCrit.benefitId = $scope.recurInfo.benefitId;
recurDateCrit.recurClaimId = null;
}
recurDateCrit.interval = $scope.recurInfo.intervalId;
recurDateCrit.fromDate = $scope.recurInfo.fromDate;
recurDateCrit.toDate = $scope.recurInfo.toDate;
recurService.getRecurDates($scope.transId, recurDateCrit).then(function(results) {
$scope.recurringDates = results.data;
$scope.recurInfo.dates = results.data;
console.log('dates received')
}, function(response) {
console.log('error occurred retrieving dates')
$scope.errMsg = errorService.getAllErrs(response.data);
});
};
以及我认为创建这个的部分:
<div class="form-group col-md-12 dateArea">
<p class="input-group" ng-repeat="recurDate in recurringDates">
<input type="checkbox" name="recurringdate" checklist-model="recurInfo.dates" checklist-value="recurDate">{{ recurDate.date }}
</p>
</div>
问题是 recurringDates
和 recurInfo.dates
都指向同一个 results.data
。一个应该是所有选项,另一个应该是选中的选项。
试试这个
$scope.recurringDates = results.data.slice();
$scope.recurInfo.dates = results.data.slice();
我假设 results.data
是一个数组,我使用 slice
创建了一个浅表克隆..