簡體   English   中英

Angular JS $ watch vs $ on

[英]Angular JS $watch vs $on

我希望在父作用域中發生狀態更改時在指令內執行函數。

實現這一目標的顯而易見的方法是使用事件廣播( $ broadcast )和監聽器( $ on )。

我很好奇,如果使用$ watch是事件廣播的替代方案。 如果是的話,兩者如何比較?

據我所知,每個$ digest周期都會評估要監視的表達式。 活動比手表更有效嗎?

$watch函數用於監視作用域上的變量。 范圍繼承允許您也可以查看父范圍變量,因此這絕對是您使用案例的方法。 正如您所說, $on用於監視事件,您可以將其$broadcast到子范圍或$emit到父范圍。 這為您提供了更多的控制,但是在編碼時可能會導致更多的錯誤,因為您可以從您不監視並忘記通知偵聽器的點獲取范圍變量的更新。

如果不繼承范圍變量,仍可以使用事件。 但要注意不要污染大范圍,使用服務可能是一種選擇,因為你會立即看到它是否被注入。

由於一個指令獲得它所在的范圍(或從它繼承),我會說$watch是一個更清潔的選擇。

如果你想在你的指令上有一個獨立的范圍,你可以將參數作為屬性傳遞並$observe它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM