我的应用程序有一个主视图,其中包含一些可由用户激活的隐藏元素。就像手机上典型的侧边栏从左侧滑入一样。或者当您点击时会显示详细信息的购物车。
这些最初隐藏的元素中的信息始终是最新的,因为它们的内容已映射到主应用程序模板中。所以我的路线不需要渲染任何 DOM。
转换是基于 JS 的。但现在我希望这些状态能够反射(reflect)在 URL 中,以获得一致的后退按钮行为。
如何使用 ember 框架实现这一目标?
更新以使其更清楚,我在说什么:
据我了解,在 ember 中触发路由主要有两个副作用:
- 在网址中表示新状态,从而实现一致的浏览器历史记录支持。
- 根据某些数据操作 DOM 的渲染模板
就我而言,例如,当用户点击我需要的最小化购物车时:
- 在网址中表示新状态,从而实现一致的浏览器历史记录支持。
- 执行我的
showCart()
JS 函数(没有 DOM 更改,没有模板渲染)
当用户现在点击浏览器后退按钮时,应执行 closeCart()
(基于 URL 中的状态携带购物车已打开的信息这一事实)。
最佳答案
问题是,他们可以在 Windows 中哪里访问这些幻灯片?它们只能从路线图中的单个位置访问吗?或者,无论用户处于哪个 View ,都可以单击它吗?如果他们从不同的 View 中单击它,您是否会将他们移回到不同的路线,只是为了在窗口中弹出一些幻灯片?
如果他们只能从一个地方单击它,那么您只需在该特定路线的 setupController 中添加代码即可触发 js 滑出窗口。
setupController: function(){
Ember.run.scheduleOnce('afterRender', this, function(){
//run some js to slide out the window
});
}
老实说,如果他们可以在任何地方单击按钮并显示幻灯片,我不会尝试将其放入网址中。只是我的意见。
关于javascript - Ember.js:如何创建仅执行代码的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111466/