我有一个指令,使用“templateURL”将外部HTML文件作为模板加载。控制器中有一个函数依赖于DOM完全呈现以正确执行。该函数抛出一个错误,因为在调用函数时,预期的DOM元素没有准备好。
JS:
print('Your amount of calories are %f' % userDrink.numberOfCalories())
模板:template.html
app.directive('directiveName',function(){
return{
restrict:'A',
replace: true,
template: '<div id="elmID"></div>', //** THIS ONE WORKS **//
templateURL:"template.html", //** THIS ONE THROWS AN ERROR **//
scope:false,
link: function(scope, elm, attrs){},
controller:function($scope){
console.log(document.getElementById('elmID'));
}
});
实际上我的template.html文件很大,所以我不想使用内联代码。任何人都知道一个解决方法吗?
答案 0 :(得分:3)
您的代码崩溃了,因为它是templateUrl
而不是templateURL
。
要回答有关渲染/时间的问题,请阅读this article。
基本上,顺序是: