Should angular $watch be removed when scope destroyed?
No, you don’t need to remove $$watchers, since they will effectively get removed once the scope is destroyed. From Angular’s source code (v1.2.21), Scope‘s $destroy method: $destroy: function() { … if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; … … Read more