angularjs指令模板与templateURL呈现时间

时间:2015-10-08 00:09:49

标签: javascript angularjs templates

我有一个指令,使用“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文件很大,所以我不想使用内联代码。任何人都知道一个解决方法吗?

1 个答案:

答案 0 :(得分:3)

您的代码崩溃了,因为它是templateUrl而不是templateURL

要回答有关渲染/时间的问题,请阅读this article

基本上,顺序是:

  1. 编译
  2. 控制器
  3. 前链路
  4. 后链接(又名链接)