javascript - 为什么无法在指令的 html 调用中访问 $rootScope?

标签 javascript angularjs csv angularjs-scope ng-grid

我使用 ng-csv 来允许用户下载其数据的 csv。创建下载链接的代码被附加到公共(public)插件模块的 HTML 页面中。在公共(public)模块中,我将导出数据设置为 rootScope 变量,以便可以从 View 中调用它,但它只是返回一个空白文档。我去哪儿了?

相关插件代码:

function getOutput(){
    return csvStringify(csvOutput);
}
var stringifiedOutput = csvStringify(csvOutput);

csvDataLinkHtml += "<span type='button' lazy-load='true' ng-csv='$root.csvOutput' csv-header='"+csvStringify(headers)+"' filename='data.csv' class='csv-data-link-span'><i class='fa fa-file-excel-o excel-icon'></i></span>";

$(function() {
  angular.element(document).injector().invoke(function($rootScope, $compile) {
    var link = $compile(csvDataLinkHtml);
    csvDataLinkHtml = link(scope);
    fp.append(csvDataLinkHtml);
    $rootScope.csvOutput = stringifiedOutput;
  });
});

澄清一下,这是一个 ng-grid 插件。

最佳答案

我在代码示例中缺少一些上下文,但您可能正在将模板链接到不同的范围。

尝试在 Chrome 检查器中选择所需的元素,然后在控制台中输入 angular.element($0).scope() 来获取关联的范围。 我猜您可能想要执行 $rootScope.$new() 并将其与新元素链接。

关于javascript - 为什么无法在指令的 html 调用中访问 $rootScope?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29260103/

相关文章:

javascript - js 验证(来自 html 输入)问题

angularjs - Angular 修改元标记

javascript - 在 Highcharts 中使用插件 CSV 导出时如何自定义文件名?

.net - 数据表转CSV

csv - JMeter 仅使用 CSV 设置的第一行

javascript - 测试 JS 变量是否设置为函数参数

javascript - 如何将变量 int 添加到对象的链式调用?

angularjs - Bower:无法找到适合 Angular 的版本

javascript - 在使用angular,angularjs和jQuery技术构建的应用程序中,处理客户端全局错误的最佳和最佳方法是什么?

javascript - Angular/webpack 站点中未定义 jQuery