2015-08-21 73 views
0

我正在用這個敲打我的頭。我的控制器結構是appController在頂部,然後是一個mapController。所有其他控制器都是嵌套的並且彼此平行。他們正在使用ui-router ui-view狀態更改進行實例化。

在我的映象控制器我有這樣的一個功能

$scope.$broadcast('selectedIdsForExport', selectedIds); 

這個作品裏面。 $ on函數位於剛剛通過狀態更改實例化的chartController中。

$scope.$on('selectedIdsForExport', function (event, selectedIds) { 

這是從廣播中擊中。但它沒有進入函數,它跳過它。這是我迷失的地方。我在$ watch函數中有這個$ on函數,我認爲這可能是一個問題,但如果這是一個問題,$ on函數不會被打中?我錯了嗎?

我該如何解決此問題?

請注意,在我的mapController我有兩個函數,都具有相同的$廣播功能。這不應該是一個問題?還有兩個具有相同$ on函數的chartController。但是,如果這是一個問題,斷點將無法捕捉到我試圖輸入的$ on函數。那是對的嗎? 這裏有幾個截圖可能有幫助。在我的頁面加載/刷新這是模式。這工作正常 pic1

當我點擊選項卡切換圖表,這是模式。 pic2

這是它跳過了$的功能

+0

你可以發表小提琴或plunk來說明問題嗎?從純粹的代碼質量角度來看,我還會從$ watch中刪除$ on。 – sma

+1

你爲什麼要將監聽器包含在$ watcher中? – lexith

+0

他說了些什麼。每當你的價值改變時,你都會一遍又一遍地生成同一個聽衆。內存泄漏。 – Rorschach120

回答