2017-05-27 1 views
2

ich in AngularJS meinen Titel dynamisch bin zu ändern, mit dem folgenden Code:Wie ändert man den Seitentitel mit einer Variablen in Angular Js?

app.run(['$rootScope', function($rootScope) { 
    $rootScope.$on('$routeChangeSuccess', function (event, current, previous) { 
     $rootScope.title = current.$$route.title; 
    }); 
}]); 

app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
     .when('/', { 
      title: 'My Tagline', 
      controller : 'IndexController', 
      templateUrl : 'static/app_partials/index.html' 
     }) 
     .when('/categories/:categoryPk/', { 
      title: $scope.category.name, 
      controller : 'CategoryController', 
      templateUrl : 'static/app_partials/category.html' 
     }) 
     .otherwise({ redirectTo : '/' }); 
}]); 

Html

<title ng-bind="'My Brand - ' + title">My Brand</title> 

Also, für die IndexController, ist der Titel nur eine einfache Zeichenfolge, so dass diese Methode funktioniert gut. Für meine CategoryController möchte ich jedoch, dass der Titel aus einer Variablen generiert wird, speziell $scope.category.name, die ich in meinem Controller-Code initialisiere. Wie kann ich das machen? Irgendeine Hilfe?

+0

Sie auch hier die Antwort finden können eingestellt werden: https://stackoverflow.com/questions/12506329/how-to-dynamisch-ändern-header-based-on-angularjs-partial-view –

Antwort

3

Verwendung ng-bind-template wie folgt:

<title ng-bind-template="My Brand - {{$root.title}}">My Brand</title> 
+0

müssen auch entfernen 'title: $ scope.category.name,' von routing config ... es gibt keine ' $ scope' dort – charlietfl

+0

Und dann wie wird meine Variable als Titel aus dem Controller? –

+0

@TahmidKhanNafee Sie könnten es innerhalb des 'routeChangeSuccess'-even-Handlers tun – mastilver

0

einen Blick auf ng-meta Nehmen dynamische Meta-Tags in Ihrer AngularJS Anwendung einzelne Seite

Verwandte Themen