2012-02-07 23 views
5

Estoy tratando de usar el sencha sdk para generar mi archivo modificado.creando todas las clases desde sencha sdk

he puesto mi página de arriba en

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

lectura de sólo index.html no es fácilmente posible. Cuando ingreso

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

Obtengo el siguiente archivo 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": [] 
} 

es decir, no está incluido en todas mis clases. Si pongo al día

"camino": "app /", "name": "app.js"

App-all.js se crea correctamente. Pero, ¿cómo puedo obtener los controladores y las vistas? Hay muchos archivos ¿Alguien tiene algún ejemplo de aplicación mvc jsb? Mi aplicación está basada en Pandora.

app/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

Tengo el mismo problema por el momento. Me falta el ux, los controladores y las vistas. Se las arregla para encontrar mis tiendas y modelos. Eso es. Estoy buscando cómo la propiedad ** requires: ** entra en juego con respecto a la Viewport. Le pasa una variedad de puntos de vista, y uno podría inferir los controladores con él. – subv3rsion

Respuesta

3

actualización

Tenemos este trabajo sin la necesidad de incluir todo en Ext.Loader() en app.js. Asegúrese de pasar Ext.Loader() una matriz con su clase Viewport. Aún así, asegúrese de hacer los usos correctos de : y requiere:. De esta forma, su salida final para el archivo jsb3 contiene todo.

Logré solucionar esto en mi extremo. Necesitaba usar el Ext.Loader() en mi archivo app.js. La idea general es que debes decirle al cargador dónde están tus archivos fuente. Asegurándose de que los archivos de su clase estén incluidos en la compilación. De acuerdo con su código anterior para 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(); 
    } 

}); 

me encontré con que en su opinión y el controlador clases asegurarse si usted tiene tiendas atadas a la vista (como un cuadro combinado) que está agregando artículos a la vista en sí en el InitComponent y utilizar el requiere: 'MyApp.store.Users' para la clase. O recibirá errores extraños ya que la vista se inicializará antes de la tienda.

El Ext.Loader.require() debe ser colocado antes de la Ext.Application. Una vez que tenga todo configurado con los modelos y controladores, querrá agregar sus puntos de vista también.

Debería estar en un buen lugar para crear su archivo jsb3 ahora y ver que sus modelos, vistas y controladores ahora son parte del proceso para la compilación.

+0

Algunas otras sugerencias útiles [Usando las herramientas de SDK] (http://www.sencha.com/forum/showthread.php?142768-Using-the-SDK-tools) – subv3rsion

+0

genial, gracias por esto. Voy a tener otra sesión sobre esto mañana. Publicaré mis hallazgos. – frosty

+0

Siempre dispuesto a ayudar. No olvide incluir la respuesta como útil si ayuda. Se supone que tenemos otra sesión enfocándonos en el sencha sdk y en este tema. – subv3rsion

Cuestiones relacionadas