[英]Can onbeforeunload event be watch by $watch in angular js?
[英]Angular JS $watch vs $on
我希望在父作用域中發生狀態更改時在指令內執行函數。
實現這一目標的顯而易見的方法是使用事件廣播( $ broadcast )和監聽器( $ on )。
我很好奇,如果使用$ watch是事件廣播的替代方案。 如果是的話,兩者如何比較?
據我所知,每個$ digest周期都會評估要監視的表達式。 活動比手表更有效嗎?
$watch
函數用於監視作用域上的變量。 范圍繼承允許您也可以查看父范圍變量,因此這絕對是您使用案例的方法。 正如您所說, $on
用於監視事件,您可以將其$broadcast
到子范圍或$emit
到父范圍。 這為您提供了更多的控制,但是在編碼時可能會導致更多的錯誤,因為您可以從您不監視並忘記通知偵聽器的點獲取范圍變量的更新。
如果不繼承范圍變量,仍可以使用事件。 但要注意不要污染大范圍,使用服務可能是一種選擇,因為你會立即看到它是否被注入。
由於一個指令獲得它所在的范圍(或從它繼承),我會說$watch
是一個更清潔的選擇。
如果你想在你的指令上有一個獨立的范圍,你可以將參數作為屬性傳遞並$observe
它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.