2012-02-07 13 views
5

我試圖使用sencha sdk來生成我的縮小文件。創建sencha sdk的所有類

我有我的頁面設置上

http://www.mysite.localhost/ext/jobs/index.html

從剛剛的index.html讀書不容易實現。當我輸入時

sencha create jsb -a http://www.mysite.localhost/ext/jobs/index.html -p app.jsb3 

我得到下面的jsb文件。

{ 
    "projectName": "Project Name", 
    "licenseText": "Copyright(c) 2011 Company Name", 
    "builds": [ 
     { 
      "name": "All Classes", 
      "target": "all-classes.js", 
      "options": { 
       "debug": true 
      }, 
      "files": [] 
     }, 
     { 
      "name": "Application - Production", 
      "target": "app-all.js", 
      "compress": true, 
      "files": [ 
       { 
        "path": "", 
        "name": "all-classes.js" 
       }, 
       { 
        "path": "", 
        "name": "app.js" 
       } 
      ] 
     } 
    ], 
    "resources": [] 
} 

即它不包括我所有的課程。如果我更新

「路徑」: 「應用程序/」, 「名」: 「app.js」 正確地創建

APP-all.js。但是我怎麼能得到控制器和視圖。有很多文件。有沒有人有任何示例mvc應用程序jsb。我的應用程序基於潘多拉盒子。

應用程序/ app.js

Ext.Loader.setConfig({ enabled: true }); 
    Ext.application({ 

     name: 'Pandora', 
     models: ['Part', 'Material', 'Job', 'Process', 'Invoice', 'InvoiceDetail', 'PurchaseOrder'], 
     stores: ['SalesContact', 'Parts', 'Materials', 'Jobs', 'AccountHandlers', 'JobTypes', 'Processs', 'Artwork', 'Varnish', 'VarnishType', 'PrintType', 'ProofRequired', 'InvoiceDetails', 'PurchaseOrders'], 
    controllers: ['Part', 'Material', 'Job', 'Process', 'Invoice'], 
     launch: function() { 

      Ext.QuickTips.init(); 
      var cmp1 = Ext.create('App.view.Jobs', { 
       renderTo: "form-job" 
      }); 
      cmp1.show(); 
     } 

    }); 

的index.html

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <script type="text/javascript" src="ext-all-debug.js"></script> 
    <script type="text/javascript" src="app/app.js"></script> 
</head> 
<body> 
    <div id="form-job"></div> 
</body> 
</html> 
+0

我現在自己也有同樣的問題。我錯過了我的用戶名,控制器和視圖。它設法找到我的商店和模型。而已。我正在尋找**如何要求:**屬性在視口方面發揮作用。你傳遞一個視圖數組,然後用它來推斷控制器。 – subv3rsion 2012-02-14 17:11:21

回答

3

更新

我們得到了這個工作,而不需要包括Ext.Loader一切() in app.js。請確保您通過Ext.Loader()一個數組與您的視口類。仍然確保你做的正確用途:要求:。這樣你最終輸出的jsb3文件包含了一切。

我設法在我的最後解決這個問題。我需要在我的app.js文件中使用Ext.Loader()。總的想法是,你需要告訴加載器你的源文件的位置。確保你的類文件包含在構建中。根據您的代碼app/app.js

Ext.Loader.setConfig({ enabled: true }); 

// SDK builder required source files, use the class names. 
Ext.Loader.require(['Pandora.view.Viewport']); 

Ext.application({ 

    name: 'Pandora', 
    models: ['Part', 'Material', 'Job', 'Process', 'Invoice', 'InvoiceDetail', 'PurchaseOrder'], 
    stores: ['SalesContact', 'Parts', 'Materials', 'Jobs', 'AccountHandlers', 'JobTypes', 'Processs', 'Artwork', 'Varnish', 'VarnishType', 'PrintType', 'ProofRequired', 'InvoiceDetails', 'PurchaseOrders'], 
    controllers: ['Part', 'Material', 'Job', 'Process', 'Invoice'], 
    launch: function() { 

     Ext.QuickTips.init(); 
     var cmp1 = Ext.create('App.view.Jobs', { 
      renderTo: "form-job" 
     }); 
     cmp1.show(); 
    } 

}); 

我發現,在您的視圖和控制器類確保,如果你有店與您的視圖(如組合框)要添加項目視圖本身在initComponent和使用需要:'MyApp.store.Users'。或者你會收到奇怪的錯誤,因爲視圖將在商店之前初始化。

Ext.Loader.require()必須置於Ext.Application之前。一旦你完成了模型和控制器的設置,你也需要添加你的視圖。

你現在應該是一個很好的地方來創建你的jsb3文件,並且看到你的模型,視圖和控制器現在成爲構建過程的一部分。

+0

其他一些有用的提示[使用SDK工具](http://www.sencha.com/forum/showthread.php?142768-Using-the-SDK-tools) – subv3rsion 2012-02-14 21:17:20

+0

太好了,謝謝你。我明天會再打一場。我會發布我的發現。 – frosty 2012-02-15 10:24:46

+0

總是樂於提供幫助。如果確實有幫助,不要忘記提供有用的答案。我們應該自己再次關注sencha sdk和這個主題。 – subv3rsion 2012-02-16 21:24:25