Javascript AngularJS两个http进入一个控制器产生问题
我在一个控制器中有两个http GET,有时它可以工作,其中两个可以工作。有时只有一个http Get是工作的。有时它们都没有显示出来。 有什么建议吗Javascript AngularJS两个http进入一个控制器产生问题,javascript,angularjs,angular-promise,angular-http,ng-controller,Javascript,Angularjs,Angular Promise,Angular Http,Ng Controller,我在一个控制器中有两个http GET,有时它可以工作,其中两个可以工作。有时只有一个http Get是工作的。有时它们都没有显示出来。 有什么建议吗 }).controller("nextSidorAdminCtrl", function($scope,$rootScope,$http,$location,$state) { $http.get("/ShiftWeb/rest/admin/getallsettingtime") .then(function(response)
}).controller("nextSidorAdminCtrl",
function($scope,$rootScope,$http,$location,$state) {
$http.get("/ShiftWeb/rest/admin/getallsettingtime")
.then(function(response) {
$scope.settingtimes = response.data;
});
$http.get("/ShiftWeb/rest/admin/nextsidor")
.then(function(response) {
$scope.nextsidor = response.data;
});
图片:
链接两个$http.get操作:
}).controller("nextSidorAdminCtrl",
function($scope,$rootScope,$http,$location,$state) {
$http.get("/ShiftWeb/rest/admin/getallsettingtime")
.then(function(response) {
$scope.settingtimes = response.data;
return $http.get("/ShiftWeb/rest/admin/nextsidor")
})
.then(function(response) {
$scope.nextsidor = response.data;
});
因为调用承诺的.then
方法会返回一个新的派生承诺,所以很容易创建一个承诺链。可以创建任意长度的链,并且由于一个承诺可以用另一个承诺解决(这将进一步推迟其解决),因此可以在链中的任何点暂停/推迟承诺的解决
有关更多信息,请参见链接两个$http.get操作:
}).controller("nextSidorAdminCtrl",
function($scope,$rootScope,$http,$location,$state) {
$http.get("/ShiftWeb/rest/admin/getallsettingtime")
.then(function(response) {
$scope.settingtimes = response.data;
return $http.get("/ShiftWeb/rest/admin/nextsidor")
})
.then(function(response) {
$scope.nextsidor = response.data;
});
因为调用承诺的.then
方法会返回一个新的派生承诺,所以很容易创建一个承诺链。可以创建任意长度的链,并且由于一个承诺可以用另一个承诺解决(这将进一步推迟其解决),因此可以在链中的任何点暂停/推迟承诺的解决
有关详细信息,请参见解决此问题的最佳方法是使用 在我的开场白中,georgeawg先生的答案中的问题是,如果
$http.get(/ShiftWeb/rest/admin/getallsettingtime”)
将返回成功
,那么$http.get(/ShiftWeb/rest/admin/nextsidor”)
将被调用,否则它将不会被调用。
正如我在问题中看到的,两者都是独立的
因此,您需要遵循异步或类似的最佳方式
因此您的代码将是:
var getAllAettingTime = function(cb) {
$http.get("/ShiftWeb/rest/admin/getallsettingtime")
.then(function(response) {
if(response.data){
$scope.settingtimes = response.data;
return cb(null,'OK');
}else{
return cb(null,'ERROR');
})
}
var nextSidor= function(cb) {
$http.get("/ShiftWeb/rest/admin/nextsidor")
.then(function(response) {
if(response.data){
$scope.nextsidor = response.data;
return cb(null,'OK');
}else{
return cb(null,'ERROR');
})
}
async.series([ getAllAettingTime, nextSidor], function(err, result) {
if (err){
/* Do what you want if err comes */
} else {
/* Do what you want if both HTTP come with success */
}
});
在上面的async.series()
中,两个HTTP都将被调用,彼此之间没有任何依赖关系
为了更好地理解,您需要学习并在应用程序中安装。解决此问题的最佳方法是使用 在我的开场白中,georgeawg先生的答案中的问题是,如果
$http.get(/ShiftWeb/rest/admin/getallsettingtime”)
将返回成功
,那么$http.get(/ShiftWeb/rest/admin/nextsidor”)
将被调用,否则它将不会被调用。
正如我在问题中看到的,两者都是独立的
因此,您需要遵循异步或类似的最佳方式
因此您的代码将是:
var getAllAettingTime = function(cb) {
$http.get("/ShiftWeb/rest/admin/getallsettingtime")
.then(function(response) {
if(response.data){
$scope.settingtimes = response.data;
return cb(null,'OK');
}else{
return cb(null,'ERROR');
})
}
var nextSidor= function(cb) {
$http.get("/ShiftWeb/rest/admin/nextsidor")
.then(function(response) {
if(response.data){
$scope.nextsidor = response.data;
return cb(null,'OK');
}else{
return cb(null,'ERROR');
})
}
async.series([ getAllAettingTime, nextSidor], function(err, result) {
if (err){
/* Do what you want if err comes */
} else {
/* Do what you want if both HTTP come with success */
}
});
在上面的async.series()
中,两个HTTP都将被调用,彼此之间没有任何依赖关系
为了更好地理解,您需要学习并在应用程序中安装。嘿,伙计,您能回答我另一个问题吗?如何使用来验证删除函数。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在Angular中,我如何做到这一点?您是否有其他解决方案承诺不会错误删除(例如:worker)?我该如何使用这个函数来调用OK按钮嘿,伙计,你能再回答我一个问题吗?如何使用来验证删除函数。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在Angular中,我如何做到这一点?您是否有其他解决方案承诺不会错误删除(例如:worker)?我该如何使用这个函数才能在OK Press上调用我已经使用了georgeawg先生所说的,而且效果很好!这确实是一个简短的解决方案。但是如果你能帮我,我还有一个问题:如何使用删除功能。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在安格拉西我该怎么做呢?我已经用过乔治先生的话了,效果很好!这确实是一个简短的解决方案。但是如果你能帮我,我还有一个问题:如何使用删除功能。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在安格拉西我该怎么做。