主干路由,应用程序在/profile内部启动
Backbone routes, the application starts inside /profile?
所以在用户登录到应用程序之前,我不使用任何骨干逻辑。所以对于使用node.js,应用程序在localhost:3000
上启动,服务器处理这部分的路由。因此,例如在访问localhost:3000
后,有两个选项,注册或登录,它们表示处理此工程,并且一个简单的routes.js文件处理这些路由的逻辑。/signup
, /login
这部分都是服务器端,在我看来,此时不需要backbone.js。
然后最后用户成功登录到应用程序,它开始于/profile
,这是我包括骨干和我的javascript,这里是我更多地依赖于客户端路由和逻辑,因为用户被批准播放,并被授予访问权限。
现在在这里有点无聊,但我的问题是,既然我的应用程序在/profile
内启动,为什么路由器会被劫持?例如,我有一个chat
路由,并调用此路由url不尊重尾斜杠localhost:3000/profile#chat
工作,但不是这个localhost:3000/profile/#chat
我读了这个Backbone.js路由可选参数,我试图逆转语法,但没有运气。
这是我的路线
module.exports = Router = Marionette.AppRouter.extend({
appRoutes: {
'' : 'home',
'(/:)chat' : 'chat' // tried playing around here
}
});
所以从服务器创建的/profile
路由开始,我如何获得尾随斜杠的工作?
Backbone是一个前端JS框架,完全独立于你的node/express后端。就路由而言,它们不共享任何逻辑。
使用express服务/profile路由:
app.get('/profile', function(req, res){
res.render('profile', {somedata:'somevalue'}); // etc..
});
然后在前端,你的主干。Router处理从此处开始的所有路由:
var myRouter = Backbone.Router.extend({
routes: {
'/' : 'profile', // Actually '/profile/
'/chat' : 'chat' // Actually '/profile/chat
}
});
最后,记得在你的路由器和所有路由被定义之后调用Backbone.history.start()
来开始监控哈希值的变化。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调用函数内部的函数
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 在phonegap应用程序内部重定向不起作用
- 使用此选项选择父类内部的类
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- AngularJs指令,该指令创建内部有数据对象的新指令
- 如何使用内部对象构造对象
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 用Javascript修改内部标记的CSS规则
- javascript函数内部的代码用逗号而不是分号分隔
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 光线投射从内部投射时不会碰到网格
- javascript无法重新定义函数内部的全局对象
- 在不移动内部文本的情况下缩放元素的效果
- JavaScript goto 标签如何使用内部循环
- Javascript:循环属性内部的条件递增或递减
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 主干路由,应用程序在/profile内部启动