例如,我们在 canjs 中制作了一个 Gmail 克隆。考虑侧边栏中的每个项目都使用自己的组件进行渲染。现在我想要一个像 gmail 一样的控制栏来控制组件内的活动。
我应该怎么处理???
目前在看localStorage的change事件,有没有更好的解决办法???
例如,我们在 canjs 中制作了一个 Gmail 克隆。考虑侧边栏中的每个项目都使用自己的组件进行渲染。现在我想要一个像 gmail 一样的控制栏来控制组件内的活动。
我应该怎么处理???
目前在看localStorage的change事件,有没有更好的解决办法???
我建议使用 appstate Map 或页面级组件来保存工具栏功能的状态。如果使用 appstate,您可以使用 can.route.map 将 appstate Map 的某些功能绑定到路由,这样您的应用的状态就可以通过 URL 来控制。例如,一个page
属性将控制显示哪个主页(例如,消息列表或联系人列表)。然后,您可以在 stache 模板中侦听 page 的某些值以切换到显示正确的页面。只要 appstate 的 page 属性为“messages”,此片段就会显示消息列表: {{#is appstate.page 'messages}}<message-list></message-list>{{/is}}
如果您有更多关于哪个功能最难弄清楚如何实现的细节,我也许可以提供更具体的建议。