2017-05-19 62 views
0

我有一个正在运行的单页AngularJS Web应用程序。要管理我的路线,我正在使用ui.router。这里是我的闪屏状态:如何动态设置Angular JS页面的标题?

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

你有没有注意到,这种状态包含data.meta对象?这是因为我使用ngMeta来填充页面的<title></title>标签。一切正常。

但是,我想标题是动态的,而不是静态的。我想在SplashCtrl中设置/调整它。但我不知道该怎么做。有人能告诉我吗?在HTML模板,我解决这个问题是这样的:<title>{{ngMeta.title}}</title>

回答

1

你可以在你的控制器注入NG-元,然后动态设置meta标签如下

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

u能告诉我如何从这样做注射请控制器? –

+0

@AmadouBeye你错过了关闭sqare括号虽然.. :) – tanmay

+0

@SaqibAli更新!如果它适用于您,请不要忘记接受此答案;) –