当我调用addCategory时,它会假设添加我的新类别,然后调用_initAdminController()
返回主页并刷新数据。但是正在发生的事情是initAdminController中的getcourselist和getsubjectlist以某种方式先运行,然后addCategory最后运行。你知道是什么原因造成的吗?我正确地使用了吗?
function _initAdminController() {
$scope.pageIndex = "adminTab";
console.log("reloading data");
$http({
method : 'GET',
url : 'http://testserver.com:8082/getSubjectListService'
}).then(function successCallback(response) {
$scope.updatedSubjects = response.data;
}, function errorCallback(response) {
console.log(response.statusText);
});
$http({
method : 'GET',
url : 'http://testserver.hughes.com:8082/getCategoryListService'
}).then(function successCallback(response) {
$scope.categories = response.data;
}, function errorCallback(response) {
console.log(response.statusText);
});
}
$scope.addCategory= function(){
var name = $scope.addCategoryData.name;
var desc = $scope.addCategoryData.description;
$http({
method : 'POST',
url : 'http://testserver.com:8082/addCategoryService',
withCredentials: true,
cache: true,
headers : { 'Content-Type': 'application/json' },
data : {
name: name,
description: desc
}
}).then(_initAdminController(), function errorCallback(response) {
console.log(response.statusText);
});
}
当我使用then get http时,这种情况正常。 http get首先完成,然后我的范围变量得到更新。 最后,在我尝试以下代码之前,在这种情况下,successCallback根本没有运行。那么这意味着只适用于GET吗?
$http({
method : 'POST',
url : 'http://testserver.com:8082/addCategoryService',
withCredentials: true,
cache: true,
headers : {
'Content-Type': 'application/json'
},
data : {
name: name,
description: desc
}
}).then(
function successCallback(response) {
_initAdminController()
},
function errorCallback(response) {
console.log(response.statusText);
}
);
答案 0 :(得分:1)
代码:
}).then(_initAdminController(), ...);
应该是:
}).then(_initAdminController, ...);