2014-03-04 27 views
0

我試圖創建一個基於煎茶的下面的示例搜索表單視圖: http://try.sencha.com/touch/2.0.0/examples/list-search/viewer.html用app.js中的函數設置商店在生產版本中不起作用?

我做了一些改動只是沒有創建由代碼視圖,但它導出的視圖。

要建立專賣店,我在配置使用:

店:Preconisations.app.getStoreAdherents(),

其中Preconisations是我的項目名稱和getStoreAdherents功能的設置app.js:

現在
getStoreAdherents: function() { 
    if (!this.storeAdherents) { 
     var gestionAdherent = new DAL_Adherent(); // custom classes 
     var tc = gestionAdherent.GetAll(); // and functions which returns a json string with data 

     this.storeAdherents = Ext.create('Ext.data.Store', { 
      model: "Preconisations.model.ADHERENT", 
      data: tc, 
      sorters: 'nom', 
      groupField: 'code' 
     }); 
    } 

    return this.storeAdherents; 
} 

,一切工作正常,但是當我做測試或生產建設中,我得到這個錯誤:

遺漏的類型錯誤:無法調用「getStoreAdherents」的未定義

在商店定義...

也許,有一個更好的辦法來設立碼商店,但我不明白爲什麼它正在開發,而不是與生產或測試版本...

有人有這個問題嗎?或者你如何動態地設置一個具有函數的商店?

謝謝...我敲我的頭掛在牆上的這一個...

回答

0

事實上,我認爲在配置中動態設置商店存在一個錯誤。 我發現這個解決辦法在DEVELOPPEMENT和在建生產當中的工作:在視圖XXXX

我沒有指定的商店。 相反,在控制器我把這個代碼在發射功能:

this.getMainView()setStore(this.getStoreAdherents());。

其中getMainView是我的視圖的引用。

就這樣!

0

很明顯,你必須在內線構建依賴於發出建立。在發佈的代碼片段中,您有可能錯過了將「Preconisations.model.ADHERENT」添加到類路徑。如果是的話,請您在以下添加到您的app.js

requires: ["Preconisations.model.ADHERENT"]

如果問題仍然存在,請執行下列操作診斷: 運行你的應用程序(發展模式),谷歌瀏覽器與控制檯打開;查找警告,指出正在同步加載特定類併爲這些類添加要求語句。

+0

感謝您的回答。不幸的是,我認爲我的「getStoreAdherents」沒有問題。看起來app.js中的函數在設置商店配置時未初始化。 Google Chrome控制檯中沒有警告和錯誤(這是我首先看到的)。我注意到,當我把一個固定的商店放在一個功能名稱中時,即使在建立生產時也是如此。 – user3379524

+0

嗨,我最近也遇到類似的情況。我發現如果沒有requires: ["Preconisations.model.ADHERENT"],App.js可能無法初始化prod版本。 (還有其他方法可以嘗試......)如果模型類不在其他地方使用,它可能不會被加載... – Sunish

相關問題