Angularjs - 如何在同一控制器的函数2中获取函数1中的值

时间:2017-02-02 07:57:57

标签: angularjs function

我的Angularjs控制器是这样的:

  chrome.storage.local.get("keyName",function(items) {
        console.log(items)
        console.log(items.keyName)
        var criticsscore = items.keyName[0]
        var audiencescore = items.keyName[1]
        $('#criticsscore').html('Critics ' + criticsscore)
        $('#audiencescore').html('Audience ' + audiencescore)
        $('#title').html(items.keyName[2])
    // Do something with items.keyName
});
});    

    chrome.storage.local.get("keyName",function(items) {//initialize the application
        console.log(items)
        console.log(items.keyName)
        var critics = items.keyName[0]
        var people = items.keyName[1]
        $('#criticsscore').html('Critics ' + critics)
        $('#audiencescore').html('Audience ' + people)
        $('#title').html(items.keyName[2])

    // Do something with items.keyName
});

我想在fn2中获得var A的值。我怎么能得到它?

3 个答案:

答案 0 :(得分:0)

我不确切知道你的背景,但我认为A必须属于你的范围:

$scope.fn1 = function(){
   //do something A
   $scope.A = 122;
};

$scope.fn2 = function(){
   //do something B
   //I want to get var A here
}

答案 1 :(得分:0)

一种方法是在函数A

之外定义fn1的值
var A = 122; // or $scope.A = 122;
   $scope.fn1 = function(){
    //do something A
   };
   $scope.fn2 = function(){
       //do something B
       //I want to get var A here
   }

或者

在功能A中调用功能B.

$scope.fn1 = function(){
//do something A
 var A = 122;
 $scope.fn2(A);
};

$scope.fn2 = function(value){
   //do something B
   //I want to get var A here
}

但是如果你在$ scope&中定义它在函数2内部,如果有可能在函数1之前调用函数2,这也不是一个好习惯

答案 2 :(得分:0)

尝试声明全局$scope.A而不是var A

$scope.A = 0;

$scope.fn1 = function(){
//do something  to change A
 $scope.A = 122;
};

$scope.fn2 = function(){
   //do something B
   var abc = $scope.A;
   console.log(abc);
}

abc should return 123,希望这是您正在寻找的答案! $scope是一个全局变量,可以在整个控制器中更改/使用:)