2011-09-09 27 views

回答

5

有是放在一起爲我們的這個例子展示了連接分機4到兩個沙發和MongoDB最後奧斯汀煎茶聚會演示項目:

https://github.com/coreybutler/JSAppStack

具體this class可能會幫助您開始。

+0

謝謝你,我給它一個去! –

3

我想指出,要充分實現演示的CRUD功能,需要進行一些修改。 CouchDB要求您爲任何更新/刪除操作附加修訂。這也可能會導致Ext REST代理中的字段屬性出現問題。有一個名爲mvcCouch的項目值得一看。該項目引用了一個插件,該插件應該可以幫助您對CouchDB進行完整的CRUD操作。

3

你會在ExtJS 4的REST代理中發現許多微妙的東西,這會讓你放慢速度。 this brief post總結了主要的:

  1. 在模型類,你必須要麼定義一個硬編碼的「身份證」屬性或使用「idProperty」來指定一個列「ID」。

  2. 您的服務器端代碼需要將整個更新的記錄返回給瀏覽器。 CouchDB通常只返回一個_id和_rev,所以你必須找到一種方法來自己獲取整個文檔。

  3. 請注意,「數據」中記錄的格式必須是JSON格式。

  4. 確保在您的Model類中至少實現了一個Validator,因爲在ExtJS源代碼AbstractStore.js中,您可以找到以下代碼,該代碼在商店時可能會始終在RowEditing插件中爲新創建的記錄返回true被設置爲autoSync = true。

    filterNew: function(item) { 
        // only want phantom records that are valid 
        return item.phantom === true && item.isValid(); 
    }, 
    

這最後一個項目是,在我看來,一個設計錯誤。 isValid()函數默認情況下應該返回true,並且如果發生問題,則依賴於開發人員拋出錯誤。

最終的結果是,除非每個字段都有驗證器,否則更新永遠不會發送到CouchDB。你不會看到任何拋出的錯誤,它什麼都不會做。