从 template.html 文件的脚本标记中的 angularjs 组件获取数据

Getting data from an angularjs component in the script tag in the template.html file

组件文件从一个 csv 文件获取数据,它有一个指向另一个 html 文件的 templateUrl。此 html 文件包含一个脚本标签,其中包含一些功能。我想从 HTML 文件中的脚本标记中的组件文件中的 response.data 访问数组。

angular.module("keyMetric",[])
.component("keyMetric",{
    templateUrl : 'keymetric/keymetric.template.html',
    controller : function control($http) {
        $http.get('customers.csv').then(function(response){
            var arr = response.data;
            var arrsplit = arr.split(',');
        });
    }
});

我想访问 keymetric.template.html 文件中脚本标签中的 arrsplit 变量

使用$rootScope.

$http.get('customers.csv').then(function(response){
            var arr = response.data;
            var arrsplit = arr.split(',');
            $rootScope.datareceived = arrsplit;
        });

现在 html

{{$root.datareceived[0]}} 一样访问。

在脚本中访问作用域变量

angular.element(document.querySelector('[ng-controller="controllername"]')).scope().yourscopevariable

或使用 jquery

var whateveryouwant = $('[ng-controller="controllername"]').scope().yourscopevariable;

这是在 angular 上下文

之外获取范围变量的通用方法
function getScope(ctrlName) {
    var sel = 'div[ng-controller="' + ctrlName + '"]';
    return angular.element(sel).scope();
}

这个可以通过传递控制器名称来调用

var $scope = getScope('ctrl');