ฉันกำลังย้ายแอพที่ใช้ AngularJS ของฉันไปใช้ ui-router แทนการกำหนดเส้นทางในตัว ฉันได้กำหนดค่าตามที่แสดงด้านล่าง
.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' }
})
});
ฉันจะใช้ตัวแปร pageTitle เพื่อตั้งชื่อเพจแบบไดนามิกได้อย่างไร ฉันสามารถใช้การกำหนดเส้นทางในตัวได้
$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
$rootScope.pageTitle = $route.current.data.pageTitle;
});
จากนั้นผูกตัวแปรใน HTML ดังที่แสดงด้านล่าง
<title ng-bind="$root.pageTitle"></title>
มีเหตุการณ์ที่คล้ายกันที่ฉันสามารถเชื่อมต่อโดยใช้ ui-router ได้หรือไม่? ฉันสังเกตว่ามีฟังก์ชัน 'onEnter' และ 'onExit' แต่ดูเหมือนว่าจะเชื่อมโยงกับแต่ละสถานะและจะต้องให้ฉันทำรหัสซ้ำเพื่อตั้งค่าตัวแปร $ rootScope สำหรับแต่ละรัฐ