2

我有一个 Marionette 应用程序,它由一系列步骤组成,每个步骤对应一个不同的视图,每个步骤在导航栏中都有一个锚标记。

<a href="#toolbox">Select Tools</a>
<a href="#payment">Pay</a>

我目前的努力是找到构建 URL 的最佳方法,以便Marionette.AppRouter能够响应它们。每当我使用类似的方案href="/toolbox"时,页面只会尝试导航到该 URL(绕过路由器),除非我阻止锚点的默认操作。我应该使用像这样的片段方案href="#toolbox"吗?或者,我应该以不同的方式设置我的Backbone.history.start()通话吗?这里的最佳做法是什么?

4

1 回答 1

3

我所做的是使用“#toolbox”作为href,但我仍然调用preventDefault点击事件。

那样:

  • 应用程序处理导航,并简单地更新 URL 片段
  • 用户可以在新窗口中打开链接(或加载书签)并登陆预期的页面(因为路由被路由控制器触发)

本质上,一旦加载了路线并且用户“在”您的 Marionette 应用程序“内部”,则不应再触发路线。相反,应该通过事件调用控制器操作来更新应用程序的显示。有关此路由方法的更多信息(请参阅“实施路由”部分):http ://samples.leanpub.com/marionette-gentle-introduction-sample.pdf

于 2013-05-23T07:54:25.877 回答