2013-10-27 48 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毫秒是絕對最小值。 –