【问题标题】:Routing.navigate vs document.location.hashRouting.navigate vs document.location.hash
【发布时间】:2012-07-01 15:03:14
【问题描述】:

我使用backbone.marionette 构建了一个网络应用程序。当我从Marionette.ItemView 触发事件document.location.hash

 document.location.hash = '#tasks/' + this.model.get('id');

1.a) 它改变了 URL 1.b) 它触发appRoutes

如果我从同一个地方触发Routing.navigate

router.navigate('#tasks/' + this.model.get('id'))

2.a) 它按预期更改 URL 2.b) 它不会触发 appRoutes。

知道为什么会发生 2.b 吗?问题可能出在哪里?

谢谢。

var Router = Marionette.AppRouter.extend({
    appRoutes: {
        'tasks': 'tasks',
        'tasks/:id': 'taskDetail',
        '*defaults': 'tasks'
    }
});

【问题讨论】:

    标签: javascript backbone.js marionette backbone-routing


    【解决方案1】:

    您需要添加{trigger: true}

    router.navigate('#tasks/' + this.model.get('id'), {trigger: true})
    

    通常我扩展路由器,然后添加我自己的导航,它会自动添加{trigger: true}。我理解开发人员为什么这样做,但我从来没有这样使用它:)

    【讨论】:

    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2011-09-18
    • 1970-01-01
    • 2012-07-27
    相关资源
    最近更新 更多