2013-06-02 57 views
3

我有一個AngularJS應用程序,它有一些指令。該應用程序從外部HTML文件加載一些HTML。 問題是應用程序中的控制器使用事件進行通信,並且從外部HTML文件加載的HTML元素的控制器被初始化,並且在其他控制器已經開始觸發事件後開始監聽事件。 它是這樣的: 的index.html:AngularJS應用程序加載時得到通知

... 
<body ng-controller="bodyController"> 
<ng-include src="page.html"></ng-include> 
</body> 
... 

page.html中:

<div ng-controller="divController"></div> 

和bodyController開始觸發事件divController開始以來,DIV傾聽他們page.html中是前在bodyController初始化後加載。

回答

0

我想你想要做的是使用ng-view與路由器:

$routeProvider.when('/', {templateUrl: 'page.html', controller: 'BodyCtrl'}); 

然後在你的HTML

<div ng-view></div> 
+0

這可能對此具體示例有所幫助,但我在頁面上有一個ng-include,並且我將HTML作爲模板加載到指令中。所以一個簡單的ng-view不會幫助..謝謝雖然.. –

+0

mmh,也許你自己引導'angular.element(document).ready(function(){...' – Ven

+0

試過了..事件發生後所有JS文件都被加載,並且在加載HTML之前.. –

0

我有一些運氣偵聽來自$ viewContentLoaded事件控制器:

$scope.$on('$viewContentLoaded', function() { 
     // do what you need done on load complete 
    }); 

它似乎沒有拿起是否指令o n頁面已完成加載/渲染,但應覆蓋其他案例

相關問題