渐进式增强- Node.js, Backbone.js
Progressive enhancement - Node.js, Backbone.js
node.js服务器有两个角色:
- 基于/API前缀路由的RESTFul API
- 呈现其他路线的网页(//计划/功能/条款…)
目前,我所有的页面都呈现一个"Loading page…",并结合了Backbone应用程序,该应用程序在主干加载时取代了DOM。路由器开始。
我想建立网站页面的服务器端,当用户到达一个页面,让骨干处理导航的下一部分,当用户在网站上导航。
我知道如何做它的服务器端,但客户端,当一个页面加载了DOM已经构建,主干。路由器加载并替换DOM,因为它不知道视图已经预加载了。
如何在客户端修复它?
代码:路由器:http://pastebin.com/aUuXaVm9
主视图:http://pastebin.com/qS1tHUfq
条款视图:http://pastebin.com/et1mrbLK
更新:新代码:https://gist.github.com/mathieug/d50c861e63dd647f1c2b
现在我需要在第一次加载时调用runSlider方法。
当你启动历史,确保传递{silent: true}
作为一个选项,让骨干知道你已经加载了一个完整的页面。这将防止路由器在视图已经预加载(第一次)时替换DOM。
从Backbone.js文档:
所以,你的代码应该是这样的:如果服务器已经渲染了整个页面,并且您不希望在启动历史记录时触发初始路由,则传递
silent: true
。
Backbone.history.start({pushState: true, silent:true});
相关文章:
- backbone.js无法渲染视图
- 如何使用backbone.js从集合中获取模型名称
- Backbone.js restful json API design
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- Backbone.js micro templating
- FancyTree JS+Backbone.JS-将数据加载到FancyTree时出现问题
- Backbone.js将模型绑定到视图时出错
- minimy javascript是什么意思?Backbone.js
- Backbone.js视图中的多个模型
- 在哪里存储HTML模板以在Backbone.js中使用
- require.js+backbone.js:如何构造具有初始化函数的模块
- JS/Backbone/Chaplin 事件处理程序未触发
- 使用Undercore.js/Backbone.js模板中的IF语句
- Node.js / backbone.js应用加载配置文件设置
- 渐进式增强- Node.js, Backbone.js
- node.js, backbone, socketio, express和coffee script都在一起吗?
- JS / Backbone -我的简单脚本不会触发"validate"在基本模型中
- Backbone-relational.js + Backbone.View(s)
- Backbone.js:“backbone . collection”;类支持不同类型的对象,以及类如何工作
- Require.js/Backbone.js:多个视图使用相同的集合