【问题标题】:Structure knockout.js application in different files在不同文件中构建 knockout.js 应用程序
【发布时间】:2015-11-06 10:53:57
【问题描述】:

我正在关注 Knockout.js,但没有找到太多关于如何正确构建淘汰应用程序的文档。

很容易遵循tutorial from the docs 及其在其中或其他页面中的多个示例,但没有太多关于文件结构的良好实践。

我见过 Steve Sanderson 的 some videos 谈论如何构建一个大项目,但他们似乎有点过分了。他提到the Yeoman tool 来生成基本的 KO 结构,但我正在使用 Node.js 和 Express.js,并且我已经有另一个正在使用的结构,我不太确定如何混合两者。

我目前拥有的是 3 个主要文件:

  • functions.js
  • viewmodels.js(ko 视图模型和域类)
  • events.js(用于 jQuery 事件)

如您所见,viewmodels.js 文件将变得越来越大,因此我正在考虑将每个视图模型与其关联的域类分开放在不同的文件中。

我发现的问题是我的一些视图模型相互关联,因为它们必须在某些时候访问彼此的数据。

我现在正在使用一个大师模型:

var MasterModel = function(){
    this.user = new UserViewModel();
    this.department = new DepartmentViewModel();
}

var mm = new MasterModel();
ko.applyBindings(mm);

所以我可以从departmentViewModel 做诸如mm.user.sayHi() 之类的事情

关于结构问题有什么建议吗?

【问题讨论】:

    标签: knockout.js knockout-3.0 knockout-3.2


    【解决方案1】:

    嗯,Yeoman 工具使用 CrossRoadsJS 和 RequireJS 生成单页应用程序结构。由于您使用的是 ExpressJS,我认为 Yeoman 结构不适合您的情况。

    如果您的视图模型越来越大,继承是不错的选择。

    看看这个article,很不错,教怎么做javascript继承,包括私有和公共的方法和属性。您可以使用它来创建强大且可重用的视图模型。

    关于好的做法,这个blog很好。它包含几篇关于 ko 组件和许多其他内容的文章。

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多