Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS两个http进入一个控制器产生问题_Javascript_Angularjs_Angular Promise_Angular Http_Ng Controller - Fatal编程技术网

Javascript AngularJS两个http进入一个控制器产生问题

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)

我在一个控制器中有两个http GET,有时它可以工作,其中两个可以工作。有时只有一个http Get是工作的。有时它们都没有显示出来。 有什么建议吗

 }).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先生所说的,而且效果很好!这确实是一个简短的解决方案。但是如果你能帮我,我还有一个问题:如何使用删除功能。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在安格拉西我该怎么做呢?我已经用过乔治先生的话了,效果很好!这确实是一个简短的解决方案。但是如果你能帮我,我还有一个问题:如何使用删除功能。我的意思是,如何提醒客户,并询问他是否确定要删除该员工。只要他按“是”。它会删除他吗?在安格拉西我该怎么做。