Funkcja $watch
służy do oglądania zmiennych w zakresie. Dziedziczenie dziedzin pozwala również na obserwowanie zmiennych w zakresie rodzica, więc jest to zdecydowanie najlepszy sposób na wykorzystanie przypadku. Jak poprawnie powiedziałeś, $on
jest używany do oglądania zdarzeń, które możesz $broadcast
dla zakresów potomnych lub $emit
dla zakresów nadrzędnych. Zapewnia to o wiele większą kontrolę, ale może powodować więcej błędów podczas kodowania, ponieważ można uzyskać aktualizację zmiennej zakresu od punktu, który nie jest monitorowany i zapomnieć powiadomić słuchaczy.
Możesz nadal używać zdarzeń, gdy nie dziedziczysz zmiennych zasięgu. Należy jednak uważać, aby nie zanieczyścić dużego zakresu, ponieważ może to być opcja usług, ponieważ od razu widać, czy jest wstrzykiwany, czy nie.
Ponieważ dyrektywa dostaje zakres, w którym jest włączony (lub dziedziczy po nim), powiedziałbym, że $watch
jest tu znacznie czystszą opcją.
Jeśli chcesz mieć izolowany zasięg na dyrektywie, możesz przekazywać argumenty jako atrybuty i $observe
je.
możliwy duplikat [Co to jest "tańszy" pod względem wydajności transmisji $ lub zegarka $] (http://stackoverflow.com/questions/19616520/what-is-cheaper-performance-wise-broadcast-orwatch) – Blackhole