2013-10-27 50 views
2

提示我做了$(document).foundation()viewContentLoaded但由于某种原因它仍然不能运行:初始化zurb基金会与angularjs

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

在这里看到演示:http://jsfiddle.net/UpwvU/

我跟着几个答案from this question但他们都没有让我成功。

回答

4

$viewContentLoaded听起来像一个简单的事件....但不幸的是,它并不意味着所有的DOM元素都被渲染。不幸的是,这样的角度做了很多次消化这几乎是不可能为它definitvely说全部完成

为了证明这一点尝试以下操作:

.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

+0

这是黄金。你刚刚解决了我一直在摔跤3个月的问题。如果您使用angularjs加载基础,则超时模块是强制性的,特别是如果您希望您的转换顺利运行! 300毫秒是绝对最小值。 –