在Angular环境中控制页面标题

时间:2016-06-16 12:12:14

标签: angularjs internet-explorer-11

我知道有很多次被问过。实际上,任何解决方案在Chrome中都可以100%正常运行,但IE也是其他功能。这是我正在使用的一个非常简单的代码: 主页:

<title ng-bind="title"></title>

控制器:

$rootScope.$on('$stateChangeSuccess', function () {
     //$window.document.title = 'Prism Main';
     $rootScope.title = 'Main Page';
 });

IE放置:主页#/ StateName

知道它为什么不在IE中工作?

由于

2 个答案:

答案 0 :(得分:0)

您可以在关卡中定义控制器。

 <html ng-app="app" ng-controller="titleCtrl">
   <head>
     <title>{{ Page.title() }}</title>

... 您可以创建服务:页面并从控制器进行修改。

myModule.factory('Page', function() {
   var title = 'default';
   return {
     title: function() { return title; },
     setTitle: function(newTitle) { title = newTitle }
   };
});

注入页面和呼叫&#39; Page.setTitle()&#39;来自控制器。

这是一个羽毛http://plnkr.co/edit/0e7T6l?p=preview

答案 1 :(得分:0)

这可以通过跨浏览器的方式轻松完成。

您可能想要创建一个可以放在页面中的指令:<some-element page-title="My Page Title"></some-element>或使用服务。我将展示一个简单的服务。

PageTitle.$inject = ['$document'];
function PageTitle($document) { this.$document = $document }
PageTitle.prototype.setPageTitle = function(title) {
    this.$document.title = title;
}

app.service('pageTitle', PageTitle);

然后在其他地方注入了这项服务,您只需将其用作:

pageTitle.setPageTitle("Foo");