问题描述
|
骨干网通过以下方式在其Controller中定义路由。这是否意味着该网站的每个页面都必须有一个副本?还是在用户到达首页以使其工作时必须加载每个脚本?
var Workspace = Backbone.Controller.extend({
routes: {
\"help\": \"help\",// #help
\"search/:query\": \"search\",// #search/kiwis
\"search/:query/p:page\": \"search\" // #search/kiwis/p7
},help: function() {
...
},search: function(query,page) {
...
}
});
解决方法
它是一个hashbang路由器,这些不是真实的页面。网址看起来像:
mysite /!#help
mysite /!#search / kiwis
等等
它用于路由单页Web应用程序。因此,您只能提供一个页面,然后通过从JSON Web服务获取数据来呈现其他页面。
Backbone.js允许您路由到页面内客户端上的子页面。这意味着您可以将URL更改为书可标记的状态,并且当您重新加载页面时,主干将重新加载页面的该“部分”。
此路由只能在一个页面内使用,而不能跨多个页面。
您应该为此使用服务器端MVC框架。
适用于PHP的CodeIgniter
Express for node.js
Ruby / Groovy的Rails
ASP.NET的MVC
适用于Python的Django
等等