Angular JS在单个控制器中多次获取请求

时间:2017-02-03 14:11:50

标签: angularjs

我有一个app模块和app控制器。当我尝试使用单个获取请求时,结果显示但是当我尝试再做一次获取请求时,我想有一个问题。

var app = angular.module('bizapp', []);

app.controller('landcont', function($location, $scope, $http, $window){

$scope.user = $location.search().username;

 **//This one works. result comes.**

  $http({
        method  : "GET",
        url     : "webapi/company/apps"
      }).then(function mySucces(response) {

          $scope.records= response.data;

          }, function myError(response) {
          $scope.apps= response.statusText;
      });


  $scope.redir=function(event){       

   **//This one doesnot work. no result comes.**

      $http({
            method  : "GET",
            url     : "webapi/login/usermap"
          }).then(function mySuccesss(res) {

                alert(res);
          } 

      var uri= 'http://localhost:8080/bizlms/bizint.php?app='+event.target.id;//+encodeURIComponent(query);

      $window.open(uri, "_self");
  }`

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

当您的控制器定义时,您的第一个ints.scan(0)(_ + _).tail 调用会运行。第二个是在一个函数内。仅在$ scope上定义函数$http并不意味着它已被执行。在您的模板中,您可以使用。

redir

答案 1 :(得分:0)

在第二个)承诺$http函数调用中添加结束then括号:

$http({
    method  : "GET",
    url     : "webapi/login/usermap"
})
.then(function(res) {
    alert(res);
}); // <----------- Add closing ")" here 

另请注意,我已将函数mySuccesss的名称取出,因为它不需要。传递给promise then函数的第一个函数将始终用作成功回调函数。除非您在其他地方使用功能名称,否则它并不是真正需要的。你可以争辩说它命名功能并告诉读者它是&#34;成功&#34;函数回调,但代码已经告诉你 - 通过将其作为第一个参数传递。