我有一些AngularJS东西,它包含一堆数组和数据.用户上传文件后,文件将被解析并保存到具有不同数组的范围中.但是,在完成所有这些并且文件保留在作用域中之后,我尝试更新innerHTML,但AngularJS代码不起作用.我使用ng-repeat创建一个基于数组的表,但它仍然是一个单元格,内容看起来像{{column}}之类.
我使用指令和模板时遇到了极大的困难,因为当我执行app.directive(…等)时,我的index.html说app和模块等是未定义的.
这是我在total.js中设置范围的一个简单示例:
function sheet($rootScope,$parse){
$rootScope.stuff = text;
//text is a variable that contains the file's contents as a string
};
document.getElementById('someStuff').innerHTML="
HTML更改但不打印文件的内容,而只打印{{stuff}}.
我如何让innerHTML理解它包含AngularJS,最好不使用partial或指令,除非你能彻底解释我输入它的位置及其语法.
编辑1:
我尝试过使用$compile但它被标记为未定义.我查看了this以找出编译问题,但我不理解rtcherry的语法,以及我应该如何将它应用于我自己的代码.
编辑2:
当我像这样包含它时,我仍然收到$compile undefined错误:
function sheet($rootScope,$parse,$compile){...};
document.getElementById('someStuff').innerHTML=$compile("
编辑3:
虽然itcouldevenbeaboat的评论非常无益,但我决定我应该向你展示我尝试这样做的指令.
var app = angular.module('App',[]);
app.directive('spreadsheeet',function($compile){
return{
templateUrl: innerHTML.html
}
});
innerHTML包含< div ng-controller ='sheet'> {{stuff}}< / div>并且在index.html上我已经包含< div spreadsheet>< / div>
有了这个,我没有收到任何错误,但文本没有显示,既不是{{stuff}}也不是文件的内容.即使我做了一些简单的事情,例如提供模板:“< h2> Hello!< / h2>”而不是templateUrl,我不能得到你好!打印.
最佳答案
这个对我有用
document.getElementById('someStuff').innerHTML = "