多个路由共享一个控制器,不同的标题怎么样?

时间:2015-05-26 10:21:51

标签: javascript angularjs routes

我正在使用angularjs重新编写应用程序。 直到今天,应用程序的每个路由都有自己的控制器和标题以及使用这样的服务的prowser:

  myApp.factory('PageTitle', function(){
     var title = 'Default title';
     return {
       title: function() { return title; },
       setTitle: function(newTitle) { title = newTitle; }
     };
  });

我在控制器中使用的那样:

PageTitle.setTitle(TitleVariable);

到目前为止,这种方法运作良好。 我需要像我说的那样重新编写我的应用程序,只为所有路由设置一个控制器。

所以我正在尝试运行一个函数,用当前路径路径来查看路径更改来更新标题(我忘了提到它是一个动态信息,所以我不能在路径文件中添加一个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">

我得到了这样的标题:

<title data-ng-bind="PageTitle.title()"></title>

0 个答案:

没有答案