2012-06-27 29 views
-1

我在knockoutjs中创建了一个相当复杂的应用程序,我正在寻找一些建议,以了解如何构建它。如何在knockoutjs中构建一个页面应用程序

该应用程序本质上是一个文档存储库,其中包含不同事件的资源。有一个活动目标网页,其中包含可供此活动使用的不同房间的按钮(例如视频,论坛,聊天)。每个房间都有不同的资源。所有数据都使用JSON格式的Web服务从数据库中提取。我需要在整个应用程序中访问一些事件数据(例如事件名称,事件联系人),然后才需要为每个房间提供房间数据。

我来自Flash/Flex背景,是MVVM框架的新手,所以我正在努力解决这个问题。任何建议或链接到一些示例应用程序将不胜感激。让我知道这是否需要进一步澄清。

+0

新用户,请张贴您有问题的代码片段,以便您获得适当的帮助。 –

+0

我目前没有任何有问题的代码,我只是在寻找关于如何构建这样的大型应用程序的建议。 – Tim

+2

你有没有试过看看http://www.knockoutjs.com?特别是互动教程部分? –

回答

1

我也创造了这些天淘汰赛单个页面的Web应用程序,我可以给你一些小小的建议:

一)作为“单页的应用程序”教程建议我用Sammy.js来在我的应用程序中管理哈希路由,它工作得很好,它很容易学习 - >http://sammyjs.org/

b)我也使用require.js来“模块化”我的应用程序,使它更容易维护,它也有助于加快一点点。这不是简单易学(我还在它很新),但我认为这可能是值得花一些时间就可以了 - >http://requirejs.org/

这里是一个sammyjs路径的一个例子:

this.get('#grid', function(context) { 

     context.app.swap(''); 

     context = this; 

     this.load("grid.php",{cache: false}).then(function(items){  

      require(['knockout','models/gridModel','customBindings'], function(ko, GridModel) { 

       context.$element().html(items); 

       var Grid_Model = new GridModel(); 
       ko.applyBindings(Grid_Model); 

      }); 

     }); 

    }); 

简而言之:当用户导航到“#grid”页面时,Sammy加载“grid.php”(我的View文件)的内容。然后require.js负责加载所需的模块(.js文件),当它们都准备就绪时,grid.php的内容将呈现在页面上,并且应用了挖空绑定。

我真的不知道这是否是更好的方式,但事情对我来说工作很好。

希望这会帮助你,对不起我可怕的英语!

相关问题