2015-12-15 37 views
1

我有一個指令項目。多個項目在頁面上設置。基於數據屬性,它將範圍變量設置爲true或false。我希望能夠將所有範圍變量設置爲false。Angular - 跨多個指令實例更改範圍變量

如果需要,我可以提供代碼,但本質上我的問題是,如何單擊一個按鈕以影響頁面上指令的每個實例中的範圍變量?

回答

1

你可以使用一個$rootScope.$broadcast和一個$scope.$on,這就像一個事件調度和監聽系統。查看this瞭解更多關於如何實現這一點的細節。

+0

我最終選擇了這個解決方案,因爲它在我的項目環境中更有意義。對於那些想知道我在頁面上有多個實例的指令。一個根播鏡廣播通知他們所有人做出相應的反應。在服務中使用$ watch感覺就像重新發明了輪子,因爲這隻需要很少的代碼。 –

1

邁克爾,我會創建一個服務,數據將存活。在每個指令中,我會$觀察該服務並在變量更新時更新這些變量。

+0

我認爲一個小的改變會更好一些,因爲OP似乎已經在一個控制器中改變了指令的值,改變了控制器來獲取/設置服務中的值,然後所有其他知道該服務的控制器會得到更新。 – HJ05