如何使用Knockout构建单页面应用程序?

Tim*_*Tom 9 javascript asp.net-mvc jquery knockout.js single-page-application

我最近开始玩Knockout,我必须说它真的很棒,它可以为Web应用程序带来的力量.

但是现在我想做一些现实世界并使用Knockout构建我的解决方案.例如.我应该如何初始化我的视图模型.他们应该去哪儿?我主要针对单页面应用程序.所以,我主要对构建单页面应用程序感兴趣.

Joh*_*apa 18

拼图有很多部分,但这里有一个简短的清单.

免责声明:我也会对您的应用做出一些假设,因此其中一些会有所不同.此外,这只是一种方法.可能有很好的方法.但这应该是一个很好的起点.

假设您的应用程序是一组SPA中的5个主视图:

  1. 创建一个主/ shell html页面来存放应用程序
  2. 为每个视图创建视图/部分页面(html).每个视图都被隐藏,直到您导航/路由到它.
  3. 创建一个可以绑定到每个视图的viewmodel创建一个bootstrapper.js,用于启动所有内容.
  4. Bootstrapper应该启动你使用的任何路由引擎(sammy,history等)
  5. Bootstrapper将视图绑定到视图模型Bootstrapper还可以为您的SPA提供任何种子数据和状态
  6. 提示:使用SoC.让您的视图模型成为视图的模型.不要让他们做路由,ajax调用,ui操作等.为其他功能分别拥有对象.DRY,KIS,SoC ......所有好东西:-)

我使用Revealing Module Pattern来创建我的视图模型,尽管标准模块也非常好.

如果你有一个更具体的问题,很高兴回答这个问题.我试着保持这个简短的事实,这不是一个5分钟的答案.事实上,我正在为Pluralsight写一篇关于2012年8月这样做的方法:-)