2012-04-11 14 views
1

Meine Erfahrung in Web-Programmierung beschränkt sich auf mittlere, autodidaktische JS und jQuery mit einer Prise PHP. ExtJS entpuppt sich als ganz anderes Tier.Verwenden von Controller zum Anhängen von Ereignissen (sencha touch/extjs)

Ich kann nicht herausfinden, warum mein Controller nicht das tut, was ich erwarte, besonders da ich der Syntax folge, die in der Dokumentation verwendet wird (die immer nutzloser wird, weil sie nicht beschreiben, was tatsächlich passiert) in den Beispielen ... aber ich schweife ab).

main.js

Ext.define("cs.view.Main", { 
     extend: 'Ext.TabPanel', 
     tabBarPosition: 'bottom', 

     requires: [ 
      'cs.view.form', 
      'cs.view.location', 
      'Ext.TitleBar', 
      'cs.controller.geolocate' 
      ], 

     config: { 
      tabBar: { 
       docked: 'bottom', 
      }, 
      defaults: { 
       flex: 1 
      }, 
      items: [ 
       { xtype: 'form' }, 
       { xtype: 'location' } 
       ] 
      }, 
    }); 

form.js

Ext.define('cs.view.form', { 
    extend: 'Ext.form.Panel', 
    requires: 'cs.controller.geolocate', 
    id: 'ClientFinderForm', 

    config: { 
     title: 'Home', 
     iconCls: 'home', 
     items: [ 
     { 
      xtype: 'toolbar', 
      docked: 'top', 
      title: 'Client Finder' 
     }, 
     { 
      xtype: 'textfield', 
      name: 'address', 
      label: 'address' 
     }, 
     { 
      xtype: 'textfield', 
      name: 'dist', 
      label: 'distance(mi)' 
     }, 
     { 
      xtype: 'button', 
      ui: 'confirm', 
      text: 'submit', 
      id: 'submitButton', 
     } 
      ] 
     }, 
}); 

geolocate.js

Ext.define('cs.controller.geolocate', { 
    extend: 'Ext.app.Controller', 

    config: { 
     control: { 
      aButton: { 
       tap: 'message' 
      } 
     },//control 
     refs: { 
      aButton: '#submitButton' 
     },//refs 
    },//config 

    message: function(){ 
     Ext.Msg.alert("Success", "Finally!"); 
    } 
}); 
+0

was ist passiert? Was meintest du mit "nicht wie erwartet arbeiten"? Sei klarer und ich helfe dir aus –

+0

Nicht funktioniert, da es nichts tut. Ich bin in der Lage, ein Ereignis direkt hinzuzufügen, indem ich ein 'Listeners:' in form.js – andyjv

+0

Es gab eine Antwort, die heute früher hilfreich schien, aber es scheint zu verschwinden ... etwas über das Hinzufügen eines 'init:' zu geolocate.js – andyjv

Antwort

1

Ich glaube, Sencha Touch 2 will yo Um die Ansichten zu sehen: [] in Ihrer App. js

Auch in Ihrer cs.view.form sollten Sie xtype: 'form' herausnehmen, es kennt bereits ein Formular, indem es Ext.form.panel erweitert.

Wenn Sie den Alias ​​von Ihrer Absenden-Schaltfläche entfernen, müssen Sie die Übergabeschaltfläche zur Verwendung des Alias ​​selbst definieren.

+0

Danke für die Tipps – andyjv

Verwandte Themen