2017-05-19 2 views
0

Ich habe eine einseitige AngularJS-Webanwendung ausgeführt. Um meine Routen zu verwalten, verwende ich ui.router. Hier ist der Staat für meine Splash Screen:Wie wird der Titel einer Angular JS-Seite dynamisch festgelegt?

$stateProvider.state('splash', 
     { 
      url: '/', 
      templateUrl: 'html/splash.html', 
      controller: 'SplashCtrl', 
      data: { 
       meta: { 
       'title': 'Splash Screen' 
       } 
      } 
     } 
); 

Haben Sie bemerkt, dass dieser Zustand enthält ein data.meta Objekt? Das liegt daran, dass ich ngMeta verwende, um den Tag <title></title> der Seite zu füllen. Funktioniert alles.

Allerdings möchte ich den Titel dynamisch, nicht statisch. Ich möchte es in der SplashCtrl einstellen/anpassen. Aber ich weiß nicht, wie ich das machen soll. Kann mir jemand zeigen? In der HTML-Vorlage, richte ich es so: <title>{{ngMeta.title}}</title>

Antwort

1

Sie können ng-meta in Ihrem Controller und stellen Sie dann Meta-Tags dynamisch wie unten

app.controller('YourController',["$scope", "ngMeta",function ($scope,ngMeta) { 
    ngMeta.setTitle('Home page'); 
    ngMeta.setTag('description', 'This is the home page'); 
    ngMeta.setTag('keywords', 'angular,stack,nodejs'); 
    ngMeta.setTag('author', 'Tony '); 
}]); 
+0

Can u mir zeigen, wie man tun, um diese Injektion von der injizieren Controller bitte? –

+0

@AmadouBeye Sie verpassten eine schließende sqare Klammer obwohl .. :) – tanmay

+0

@SaqibAli aktualisiert! Vergessen Sie nicht, diese Antwort zu akzeptieren, wenn es für Sie funktioniert;) –

Verwandte Themen