2

我已经$(document).foundation()着火了,viewContentLoaded但由于某种原因它仍然没有运行:

var myApp = angular.module("myApp", []).run(function($rootScope) {
    $rootScope.$on('$viewContentLoaded', function () {
        console.log('loaded!');
        $(document).foundation();
    });
});

在此处查看演示:http: //jsfiddle.net/UpwvU/

我已经从这个问题中得到了几个答案,但没有一个让我成功。

4

1 回答 1

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

于 2013-10-27T20:33:54.967 回答