angularjs不能通过url使用get方法将变量传递给服务器

时间:2016-07-21 21:15:02

标签: javascript angularjs

我有一个全局变量' id'

alert

在此代码中,id可以正常显示console.log值,但是当我没有将id显示undefined作为$http.get('xxx.xxx.xxx.xxx/?id=8') 时}。

为什么会有不同的行为?

同时此代码正常工作

   trollm.controller("getSingle",function($scope,$http){
    var id;
    var url;
    $scope.troll=[];
    $scope.init = function(getid)
   {

id=getid; 

//This function is sort of private constructor for controller



//Based on passed argument you can make a call to resource
//and initialize more objects
//$resource.getMeBond(007)
}

$http.get('http://xxx.xxx.xx.xx./?id='+id).then(function(rest) {
  alert(id);

  //alert(id);

      angular.forEach(rest.data, function(singletroll){
      $scope.troll.push(singletroll);
      })
      $scope.lasttrollID=rest.data.lastID;
      //$scope.troll = rest.data;
      })

     console.log($scope.init);
    });

所有代码

{{1}}

1 个答案:

答案 0 :(得分:0)

在将函数构造函数var设置为控制器var之后立即尝试在同一函数实例中调用$http.get

trollm.controller("getSingle",function($scope,$http){
    var id;
    var url;
    $scope.troll=[];

    $scope.init = function(getid){
        // set the controller id
        id=getid; 
        $http.get('http://xxx.xxx.xx.xx./?id='+id).then(function(rest) {
        ...

如果您设置了$http.get,那么您没有在init函数中调用id。因此,在调用控制器时,id为undefined