angularjs
  • internet-explorer-11
  • 2016-06-16 23 views 2 likes 
    2

    我知道这已被问了很多次。实际上任何解决方案在Chrome中都可以100%正常工作,但IE是另一回事。下面是我用一个非常简单的代码: 主页:Angular环境中的控件页标题

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

    控制器:

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

    IE所说:主页#/ Statename的

    任何想法,为什么它不工作IE浏览器?

    谢谢

    +0

    似乎对我的IE-11 – gaurav5430

    回答

    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 } 
        }; 
    }); 
    

    从控制器注入页面和调用'Page.setTitle()'。

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

    +0

    工作,我认为这将拿出{{Page.title ()}}在状态改变之前。 – Mark

    +0

    你需要从所有控制器调用此服务...所以你可以定制它.. –

    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"); 
    
    相关问题