之前的答案适用于旧版本的 Ember。经过几次更改,框架已达到 1.0 RC2 版本,并且接近最终版本,因此我决定更新此答案。
例如,请查看此小提琴中定义的路由:http: //jsfiddle.net/schawaska/dWcUp/
这个想法与之前的答案相同,只是方式不同,因为路由 API 发生了很大变化。
下面的 Route 使用activate
钩子通过 jQuery 设置文档的标题:
App.ProductRoute = Em.Route.extend({
activate: function() {
$(document).attr('title', 'Auto Web Shop - Product');
}
});
编辑:如评论部分所述:
仅供参考activate是 API 方法,而不是输入- pauldechov
这个答案在之前的 Ember 版本中给出,现在不再适用。
在你的内部connectOutlets
,你可以做一些简单的事情,比如使用 jQuery 来修改文档的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 模型上拥有一个仅用于标题的属性(但我相信您必须在视图中处理此问题并从那里过渡到路线)。
无论如何,这只是为了展示设置页面标题的一种可能方式。
编辑:我已经修改了一个现有的小提琴来做到这一点。看看navigateTo
路由器中的方法:http: //jsfiddle.net/schawaska/hEx84/(要查看它运行到这里http://jsfiddle.net/schawaska/hEx84/show/)