Cách dễ nhất để thực hiện điều này là sử dụng một dịch vụ. Ví dụ:
app.factory( 'AuthService', function() {
var currentUser;
return {
login: function() { ... },
logout: function() { ... },
isLoggedIn: function() { ... },
currentUser: function() { return currentUser; }
...
};
});
Sau đó, bạn có thể tham chiếu điều này trong bất kỳ bộ điều khiển nào của mình. Đoạn mã sau theo dõi những thay đổi trong giá trị từ dịch vụ (bằng cách gọi hàm được chỉ định) và sau đó đồng bộ hóa các giá trị đã thay đổi với phạm vi.
app.controller( 'MainCtrl', function( $scope, AuthService ) {
$scope.$watch( AuthService.isLoggedIn, function ( isLoggedIn ) {
$scope.isLoggedIn = isLoggedIn;
$scope.currentUser = AuthService.currentUser();
});
});
Và sau đó, tất nhiên, bạn có thể sử dụng thông tin đó theo cách nào bạn thấy phù hợp; ví dụ: trong chỉ thị, trong mẫu, v.v. Bạn có thể lặp lại điều này (tùy chỉnh theo những gì bạn cần làm) trong bộ điều khiển menu của mình, v.v. Tất cả sẽ được cập nhật tự động khi bạn thay đổi trạng thái trên dịch vụ.
Bất cứ điều gì cụ thể hơn tùy thuộc vào việc triển khai của bạn.
Hi vọng điêu nay co ich!