每当我点击我的函数中的以下行时,我都会收到错误(由于某些原因它没有给我错误描述):
var deferred = $q.defer();
使用此函数调用函数:
var promise = saveAccessPermissions($scope.form.permissions, $scope.form);
promise.then(function () {
alert('items saved');
})
这是整个函数,但它永远不会超过$q
。
function saveAccessPermissions(permissions, form) {
var deferred = $q.defer();
var permissionCount = 0;
function saveAccess() {
form.AccessListItemPropertyId = permissions[permissionCount].AccessListItemPropertyId;
PermissionsService.insertEmployeeAccess(form)
.then(function () {
permissionCount++;
if (permissionCount < permissions.length) {
return saveAccess();
}
else {
deferred.resolve();
}
}).error(function (reason) {
alert(reason);
});
}
}
这是我一直使用它的方式,但它在该行上出错了。我把它注入我的控制器:
angular.module('myModule').controller('PermissionsCtrl', PermissionsCtrl);
PermissionsCtrl.$inject = ['$scope', 'PermissionsService', '$filter', '$q', '$http'];
function PermissionsCtrl($scope, PermissionsService, $filter, $q, $http) {
我不确定我错过了什么。非常感谢任何帮助!