Tôi đang di chuyển ứng dụng dựa trên AngularJS của mình để sử dụng ui-router thay vì định tuyến tích hợp sẵn. Tôi đã cấu hình nó như hình dưới đây
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl : 'views/home.html',
data : { pageTitle: 'Home' }
})
.state('about', {
url: '/about',
templateUrl : 'views/about.html',
data : { pageTitle: 'About' }
})
});
Làm cách nào để sử dụng biến pageTitle để đặt động tiêu đề của trang? Sử dụng định tuyến tích hợp, tôi có thể làm
$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
$rootScope.pageTitle = $route.current.data.pageTitle;
});
và sau đó liên kết biến trong HTML như được hiển thị bên dưới
<title ng-bind="$root.pageTitle"></title>
Có một sự kiện tương tự mà tôi có thể tham gia bằng cách sử dụng ui-router không? Tôi nhận thấy rằng có các hàm 'onEnter' và 'onExit' nhưng chúng dường như bị ràng buộc với từng trạng thái và sẽ yêu cầu tôi lặp lại mã để đặt biến $ rootScope cho từng trạng thái.