在函数AngularJS之外传递变量

时间:2016-06-17 11:25:54

标签: angularjs scope

我在AngularJS中有一个函数:

function TrendChart(){

      $scope.data = [];
      $scope.datta = [];

      TrendChartFactory.get({kpiItem: $scope.selectedKpiItem.key, puItem: $scope.puName},function(data){
          $scope.trendValues = data;
          console.log($scope.trendValues);
      })

      getKpiValue($scope.selectedKpiItem.key,$scope.trendValues);

}

但我想在我的函数之外访问$ scope.trendValues:

function getKpiValue(selectedKPI,trendV) {
     for(var i= 0; i< $scope.trendV.length;i++){
          console.log($scope.trendV[i][selectedKPI]);
          $scope.data.push($scope.trendV[i][selectedKPI]);
     }
     $scope.datta.push($scope.data);
     console.log($scope.datta);
}

但显然我得到一个错误,它是未定义的。我怎样才能解决这个问题 ?

2 个答案:

答案 0 :(得分:0)

你可以通过angular.element

来实现
<div ng-app="ManagerApp">
    <div id="controller-id" ng-controller="ManagerCtrl">   
    </div>
</div>

JavaScript的:

var scope = angular.element(document.getElementById("controller-id")).scope();

使用scope.scopeMethod()&amp; amp;范围访问范围方法和变量后, scope.scopeVariable

详细示例的jsfiddle:

https://jsfiddle.net/nikdtu/hfz3psuu/

答案 1 :(得分:0)

您可以使用

var scope = angular.element(yourControllerDOMElement).scope();
var yourVariable = scope[yourVariableName];