为什么可以't在对指令的html调用中访问$rootScope
Why can't the $rootScope be accessed in the html call to the directive?
我使用ng csv来允许用户下载他们数据的csv。创建下载链接的代码从一个通用插件模块附加到页面HTML中。在通用模块中,我将导出数据设置为rootScope变量,以便可以从视图中调用它,但它只是返回一个空白文档。我要去哪里?
相关插件代码:
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网格插件。
我在代码示例中缺少一些上下文,但您可能正在将模板链接到不同的范围。
尝试在chrome检查器中选择所需的元素,并在控制台中键入angular.element($0).scope()
以获取关联的作用域。我猜您可能想做一个$rootScope.$new()
,并将其与新元素链接起来。
我们最终将csv数据设置为window.csvData,并更改了ngcsv指令中的几行代码:
function getOutput(){
return csvStringify(csvOutput);
}
var stringifiedOutput = csvStringify(csvOutput);
window.csvMyData = csvOutput;
var csvDataLinkHtml = "<div class='ngHeaderButton2'><span type='button' lazy-load='true' ng-csv='[]' ng-csv-reference='csvMyData' csv-header='"+csvStringify(headers)+"' filename='data.csv' class='csv-data-link-span'><i class='fa fa-file-excel-o excel-icon'></i></span></div>";
$(function() {
angular.element(document).injector().invoke(function($compile) {
var link = $compile(csvDataLinkHtml);
csvDataLinkHtml = link(scope);
fp.append(csvDataLinkHtml);
});
});
相关文章:
- 从.js文件调用html中的js函数
- 当 Node.js 调用 HTML 时,外部 Javascript 和 CSS 不会对 HTML 产生影响
- 通过express路由调用HTML中的Javascript函数
- 在ASP中调用HTML以调用其他脚本
- 调用html()之前需要执行unbind()还是off()
- 用于调用 html 页面的内容窗格查询
- 如何检测何时在 jQuery 中调用 .html() 函数
- 如何使用在 jscript 中声明的参数调用 Html.RenderAction()
- 在iframe中使用jquery-mobile调用html页面
- magnific弹出窗口在调用.html内生成的类时不起作用
- 如何在javaScript中调用HTML选择值
- 如何使用css,js和图像调用HTML文件
- 使用 javascript 调用 html 中标签的下载
- 未调用HTML中的Javascript函数
- 调用html body标记中的脚本函数
- 使用sl4a中的webViewShow调用HTML
- IE中并不总是调用HTML页面卸载
- 如何才能只调用html文件的一行
- 使用变量或JavaScript动态调用HTML文件以给出搜索结果
- 当调用HTML时,如何显示HTML文件中的特定表以及多个表