我已$(document).foundation()
点击viewContentLoaded
,但由于某种原因,它仍未运行:
var myApp = angular.module("myApp", []).run(function($rootScope) {
$rootScope.$on('$viewContentLoaded', function () {
console.log('loaded!');
$(document).foundation();
});
});
请参阅此处的演示:http://jsfiddle.net/UpwvU/
我已经跟了几个答案from this question,但没有一个让我成功。
答案 0 :(得分:4)
$viewContentLoaded
听起来像一个简单的事件....但遗憾的是,并不意味着所有的DOM元素都已被渲染。不幸的是,角度做了许多消化循环的方式,它几乎不可能明确地说完所有
要证明这一点,请尝试以下操作:
.run(function($rootScope, $timeout) {
$rootScope.$on('$viewContentLoaded', function () {
console.log('loaded!');
console.log($('.has-tip').length,' Num tips');// likely zero as ng-repeat hasn't completed
$timeout(function(){
console.log($('.has-tip').length,' Num tips after timeout'); // 5
},300)
});
});
将您的基础代码放在$timeout block
中,看看是否有帮助。至于等待的持续时间......不确定最佳建议是什么
的 DEMO with $timeout 强>