Như đã biết $scope là một đối tượng cầu nối lưu trữ dữ liệu, hay có thể hiểu nó là một kho dữ liệu để trao đổi giữa controller và HTML, nhưng chỉ tồn tại trong một view nhất định.
$rootScope cũng như $scope nhưng tồn tại trên toàn bộ ứng dụng của chúng ta (có thể gọi trong service, directive, controller, filter, ...). Hiểu đơn giản tất cả $scope đều là hậu duệ của $rootScope.
Phương thức
Tất cả các phương thức đều áp dụng cho $scope và $rootScope
$watch(watchExpression, listener, [objectEquality])
- Phương thức này sẽ quan sát giá trị của watchExpression
- listener sẽ được gọi khi giá trị watchExpression thay đổi
- objectEquality là true nếu như watchExpression là một đối tượng phức tạp (Angular sẽ sử dụng angular.equals để so sánh)
Tham số | Kiểu |
watchExpression | function String |
listener | function(newVal, oldVal, scope) |
objectEquality | Boolean |
Return: Trả về một hàm hủy đăng ký, khi hàm này được thực thi thì việc quan sát sẽ chấm dứt.
$watchGroup(watchExpressions, listener)
Mở rộng của $watch, nó sẽ quan sát một mảng các giá trị của watchExpressions, nếu một phần tử bất kỳ trong mảng thay đổi thì listener sẽ được gọi.
Tham số | Kiểu |
watchExpression | Array[<string | Function()>] |
listener | function(newVal, oldVal, scope) |
Return: Trả về một hàm hủy đăng ký, khi hàm này được thực thi thì việc quan sát sẽ chấm dứt.
$watchCollection(obj, listener)
Quan sát sự thay đổi các thuộc tính của một đối tượng (cũng như các phần tử của mảng)
Tham số | Kiểu |
obj | function String |
listener | function(newCollection, oldCollection, scope) |
Return: Trả về một hàm hủy đăng ký, khi hàm này được thực thi thì việc quan sát sẽ chấm dứt.