【发布时间】:2014-02-21 11:25:14
【问题描述】:
我是 Backbone Marionette JS 的新手,想知道它的路由是如何工作的。有没有人可以解释我或指出我正确的方向来看待它。
提前致谢。
【问题讨论】:
标签: backbone.js marionette backbone-routing
我是 Backbone Marionette JS 的新手,想知道它的路由是如何工作的。有没有人可以解释我或指出我正确的方向来看待它。
提前致谢。
【问题讨论】:
标签: backbone.js marionette backbone-routing
你应该看看
https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.approuter.md
【讨论】:
Marionette Router 扩展了 Backbone Router 对象。它是将 URL 注册到方法(函数)的对象。这意味着无论何时您导航到一个新的 URL,您的客户端都会向服务器发出 GET 请求(服务器将下载其中导入的 html 文件和 css、js)。然后,将评估与路由对应的方法。
有一个用于浏览器的标准。 # 前面的任何内容都向服务器请求,后面的内容将进入您的路由器。
您只需要实例化一个路由器就可以让路由工作。我认为它注册到 Backbone 中的全局变量。在 Backbone 中激活历史记录后,您可以使用这些路由。
【讨论】:
我一直在寻找类似的东西,希望这对其他人有帮助。该示例来自 Davis Sulc 的《木偶的温和介绍》一书。
ContactManager.module("ContactsApp",function(ContactsApp,ContactManager,Backbone,Marionette_){
ContactsApp.Router = Marionette.AppRouter.extend({
appRoutes: {
"contacts": "listContacts"
});
varAPI={
listContacts: function(){
console.log("route to list contacts was triggered");
}
};
ContactManager.addInitializer(function(){ new ContactsApp.Router({
controller: API
});
});
});
【讨论】:
Davis Sulc 的书Gentle Introduction to Marionette 是一个很好的起点。了解 Marionette.Controller 和 Marionette.Module 的概念将有助于拆分路由器以获得更好的可维护性。
【讨论】: