2014-11-24 36 views
0

我的應用程序時,使用兩個AngularJS指令:包含一個子指令的多個實例父指令。通過子指令呈現HTML取決於與父指令關聯的包含元素的寬度,因此子指令必須通過調用父級(通過調用其控制器上的方法)來查詢此寬度。在靜態頁面使用時AngularJS:指令計時問題採用了棱角分明的路由

此實現工作正常,但由於其採用折角的路由機制一個單頁的應用程序的一部分時,它打破。

具體地,路由活動的,則第一次加載頁面時,將HTML正確呈現,但是當頁面內容被更新,以反映不同的模型數據,繪製斷裂。這僅在包含元素的寬度爲100%時纔會發生。如果它設置爲固定寬度,則所有內容都按預期工作。

調試問題已經表明,包含父元素的寬度在呈現子指令時是無效的,所以我假設我按照錯誤的順序做事或者未能遵循Angular的某些方面處理這種時間問題的最佳實踐。

是否有我的指令需要渲染之前等待的事件嗎?

謝謝,提前。 添

回答

0

如果我理解正確,你是有對父指令寬度依賴幾個孩子的指令。有些事件可以嘗試,例如$ broadcast,父指令向其子節點發送通知。一旦收到該節點,就可以使用$ on事件並且可以使用子節點指令。 我知道我的回答並不富有建設性,但是如果你已經建立了這樣的依賴關係。

+0

感謝您的建議。其實我對$ broadcast和$ on很熟悉,但我不確定我應該用什麼來作爲廣播的觸發器。事實上,我的代碼在靜態頁面中工作正常,但沒有路由,這讓我認爲必須通過路由機制公開一些時間事件,這些事件我需要配合。 – 2014-11-24 14:10:53