前の回答は、古いバージョンのEmberに当てはまりました。いくつかの変更の後、フレームワークはバージョン1.0 RC2に到達し、最終版に近づいているので、この回答を更新することにしました。
例として、このフィドルで定義されているルートを調べてください:http: //jsfiddle.net/schawaska/dWcUp/
考え方は前の回答と同じですが、ルーティングAPIが大幅に変更されたため、方法が異なります。
以下のルートは、activate
フックを使用してjQueryを介してドキュメントのタイトルを設定します。
App.ProductRoute = Em.Route.extend({
activate: function() {
$(document).attr('title', 'Auto Web Shop - Product');
}
});
編集:コメントセクションに記載されているように:
FYI activateは、入力するのではなく、APIメソッドです– pauldechov
この回答は以前のバージョンのEmberで提供されたものであり、現在は適用されていません。
内部では、jQueryを使用してドキュメントの属性connectOutlets
を変更するのと同じくらい簡単なことを行うことができます。title
[...]
home: Em.Route.extend({
route: '/',
connectOutlets: function (router, context) {
// router.set('navbarController.selected', 'home');
router.get('applicationController')
.connectOutlet('home');
$(document).attr('title', 'YOUR TITLE GOES HERE');
}
}),
[...]
ただし、すべてのルートでこれを行う必要があります。
選択したナビゲーションメニュー項目を設定するナビゲーションバーコントローラーのようなものがある場合は、selected
プロパティを監視して、「アクティブ」または「選択した」cssクラスをナビゲーション項目にバインドし、ページタイトルを設定します。または、コンテキストを通過するnavitemモデルのタイトル専用のプロパティを持つこともできます(ただし、ビューでこれを処理し、そこからルートに移行する必要があると思います)。
とにかく、これはページタイトルを設定するための可能な方法の1つを示すためだけのものです。
編集:私はそれを行うために既存のフィドルを変更しました。navigateTo
ルーターのメソッドを見てください:http: //jsfiddle.net/schawaska/hEx84/(実行されていることを確認するには、http: //jsfiddle.net/schawaska/hEx84/show/にアクセスしてください)