【发布时间】:2013-02-07 22:46:24
【问题描述】:
我刚刚开始使用 KnockoutJS,我正在将它与 PagerJS、SammyJS 和 BootStrap 结合使用来构建单页应用程序,我现在有点迷茫。
让我吃惊的是我应该如何组织视图模型并以简单且可重用的方式组合路由和页面?现在感觉就像一堆松散的碎片,几乎不适合。我已经检查了一些关于 SO 的答案,但我仍然没有掌握如何组织应用程序。
目前我在页面上有一个视图模型,作为概念证明,它只处理用户个人信息和即将发生的事件的显示。但是,现在我必须合并其他类型的信息,并且拥有一个视图模型,而不是多个视图模型似乎是不对的,因为期望用户能够管理他/她的事件、联系人和任务并列出其他用户、事件和任务等。还有更多。
用户选择/选择的几乎所有选项都在数据库中定义。例如,用户任务和解决这些任务的相应动作是在数据库中预定义的。
大多数示例倾向于将 SammyJS 路由放在 viewmodel 中,但是当页面上有多个 viewmodel 时,我想将 SammyJS 从单个 viewmodel 移动到自己的位置,即在一个地方编辑路由。
我的想法是使用 PagerJS 在不同的视图之间轻松切换,但它需要在 SammyJS 中设置的路径和用于 PagerJS 的数据绑定路径之间进行同步。 For example when selecting #!/user then the routing in Sammy handles the request and fetches the data to be displayed and PagerJS shows the user page.对我来说感觉有点脆弱,但这也许就是它应该的工作方式。
【问题讨论】:
-
你也可以看看Knockback;一个采用 Knockout 和 Backbone 的“两全其美”的框架(包括路由和历史支持)。
标签: javascript knockout.js single-page-application sammy.js pagerjs