2012-06-27 65 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的內容將呈現在頁面上,並且應用了挖空綁定。

我真的不知道這是否是更好的方式,但事情對我來說工作很好。

希望這會幫助你,對不起我可怕的英語!

相關問題