Xer*_*rri 16 page-title backbone.js backbone-views
我正在使用backbone.js创建一个单页应用程序,并想知道处理更改标题的最佳方法.我想在视图中有一个'title'选项,并让路由器(不知何故)设置document.title.有没有人实现类似的东西?谢谢
Vin*_*lia 34
为什么不使用Backbone.js的性质.
首先,我不认为由路由器委托更新文档标题.特别是如果您正在使用较大的客户端应用程序,您希望保持简单并确保应用程序的每个部分都能完成特定任务.
路由器在那里委托路由,仅此而已.
我建议的是(取决于你如何初始化你的应用程序)来创建一个应用程序级别的事件聚合器.
var app = new Application();
app.eventAggregator = _.extend({}, Backbone.Events);
Run Code Online (Sandbox Code Playgroud)
并将事件绑定到您的应用程序:
app.eventAggregator.on('domchange:title', this.onDomChangeTitle, this);
Run Code Online (Sandbox Code Playgroud)
在Application构造中的位置
onDomChangeTitle: function (title)
{
$(document).attr('title', title);
}
Run Code Online (Sandbox Code Playgroud)
而现在,不必将其留给路由器以始终获取标题并确保getTitle每个视图中有方法,您可以 - 在视图内部,因此,任何视图 - 在渲染或初始化视图时触发以下事件:
app.eventAggregator.trigger('domchange:title', this.title);
Run Code Online (Sandbox Code Playgroud)
在我看来,它可以制作更清晰,更精简的代码,但话说回来,这只是一种观点.
mid*_*dev 27
为什么你们都使用jQuery来改变文档的标题而不是使用纯Javascript?更快,更容易,更清洁......
document.title = 'new title';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7829 次 |
| 最近记录: |