2016-06-16 4 views
2

何度も尋ねられていることは分かっています。実際には、どのソリューションもChromeで100%正常に動作しますが、IEは別のものです。ここで私が使用しています非常に単純なコードは次のとおりです。 メインページ:角のある環境でのコントロールページタイトル

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

コントローラ:

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

IEを置く:メインページ#/ステート名

それはで働いていない理由を任意のアイデアをIE?

ありがとうございました

+0

が、私はそれが{{Page.titleを考え出すだろうと思い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

に私のために働くようです()}}を実行します。 – 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"); 
関連する問題