视图加载时脚本未运行

时间:2014-07-10 14:07:12

标签: javascript angularjs

我要运行以下简单的JavaScript,引用角度视图中的元素:

var buttons = document.querySelectorAll('.msg-type i');
console.log(buttons.length);

它在控制台0上打印,这是错误的(页面上有3个元素)。

问题是,我的脚本包含在索引页面中,而不是在视图本身中,我不想将脚本分段以避免过多的HTTP请求,从而减少加载时间。

如何在加载视图时运行脚本?

2 个答案:

答案 0 :(得分:0)

如果它不是文档中的最后一件事,则执行此代码

window.addEventListener("DOMContentLoaded", function() { 
    var buttons = document.querySelectorAll('.msg-type i');
    console.log(buttons.length);
});

答案 1 :(得分:0)

解决方案是简单地创建一个函数,然后在视图控制器中调用此函数:

的script.js:

var init = function() {
     var buttons = document.querySelectorAll('.msg-type i');
     console.log(buttons.length);
}

controller.js:

myApp.controller('ctrlName', function($scope) { 
     init();
});