Javascript 多条路线共享一个控制器,不同的标题如何?
我正在用angularjs编写一个应用程序。 直到今天,应用程序的每一条路线都有自己的控制器和标题,以及prowser使用的类似服务:Javascript 多条路线共享一个控制器,不同的标题如何?,javascript,angularjs,routes,Javascript,Angularjs,Routes,我正在用angularjs编写一个应用程序。 直到今天,应用程序的每一条路线都有自己的控制器和标题,以及prowser使用的类似服务: myApp.factory('PageTitle', function(){ var title = 'Default title'; return { title: function() { return title; }, setTitle: function(newTitle) { title = new
myApp.factory('PageTitle', function(){
var title = 'Default title';
return {
title: function() { return title; },
setTitle: function(newTitle) { title = newTitle; }
};
});
PageTitle.setTitle(TitleVariable);
<title data-ng-bind="PageTitle.title()"></title>
我在控制器中使用的是:
myApp.factory('PageTitle', function(){
var title = 'Default title';
return {
title: function() { return title; },
setTitle: function(newTitle) { title = newTitle; }
};
});
PageTitle.setTitle(TitleVariable);
<title data-ng-bind="PageTitle.title()"></title>
到目前为止,这一切都很顺利。
正如我所说,我需要重新编写我的应用程序,使所有路线只有一个控制器
因此,我尝试运行一个函数,用当前路由路径查看路由更改,以更新标题(我忘了提到它是一个动态信息,所以我想我无法在路由文件中添加标题变量),但它不起作用
实现这一目标的正确方法是什么
我的看法是:
myApp.config([
'$routeProvider',
'$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('!');
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'views/homepage.html'
})
// route for the home page
.when('/home/:pageSlug/', {
templateUrl : 'views/homepage.html'
})
等等
我在头文件的index.html文件中调用控制器,如下所示:
<html data-ng-app="myApp" data-ng-controller="appCtrl">
我的标题是这样的:
myApp.factory('PageTitle', function(){
var title = 'Default title';
return {
title: function() { return title; },
setTitle: function(newTitle) { title = newTitle; }
};
});
PageTitle.setTitle(TitleVariable);
<title data-ng-bind="PageTitle.title()"></title>
请参阅此堆栈溢出帖子:@YashikaGarg我已经读过了,但似乎只有我已经为每个路由使用不同控制器的解决方案。