如何动态设置Angular JS页面的标题?

时间:2017-05-19 02:53:21

标签: javascript angularjs meta-tags

我有一个正在运行的单页AngularJS Web应用程序。要管理我的路线,我正在使用ui.router。这是我的启动画面的状态:

  $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 个答案:

答案 0 :(得分:3)

您可以在控制器中注入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 ');
}]);