2013-10-08 1 views
1

Я хочу передать идентификатор из TabView (myView1) в контроллер (theController), то после того, что я хочу, Класс контроллера для передачи данных другому TabView (myView2) на той же панели. У любого есть идея, как я могу это сделать?Сенча Touch: Как я могу передать данные с целью контроллера и контроллера к следующему виду

+0

привет, я верю, что идентификаторы являются уникальными объектами зрения, к которым он может получить доступ в глобальном масштабе для использования по мере необходимости .. – codebreaker

+0

@Mureinik, см. Ответ ниже – Arsalan

ответ

0

Вы можете сделать как этот

в контроллере:

config:{ 
refs:{ 
    myView1: "myView1Ref", 
    myView2: "myView2Ref" 
}, 
controls:{ 
    myView1:{ 
     idgiven: "onIdGiven" 
    } 
} 
}, 
onIdGiven: function(id){ 
    this.getMyView2().setData(yourData); 
} 

в MyView1, когда вы хотите дать идентификатор, вобще

this.fireEvent(yourId); 
0
Ext.define('myapp.controller.theController', { 

extend: 'Ext.app.Controller', 
config: { 
    refs: { 
     views: [ 
      'myapp.view.myView1', 
      'myapp.view.myView2', 
     ], 
     refMyView1: 'myView1', 
     refMyView2: 'myView2', 
    }, 
    control: { 
     'button[action=submit]':{ // on tab of submit button 
      tap: 'submitTapHandler' 
     }, 
    }, 
    }, 

submitTapHandler: function(){ 
    var view1data = this.getRefMyView1().getValues(); // view1data contain all field data of view1 in record form 

    //controller to view pass data 
    var myView2 = Ext.create('myapp.view.myView2'); 
    // create a record that key value have name of fields and value to pass to that field 
    var record; 
    // set record key value 
    myView2.setRecord(record); 
} 

}) 
+0

Привет, Ратхор! Я получаю ваш ответ, но я не знаю, как получить значения в myView2. Я пытался использовать tpl, но записи еще не было. Можете ли вы рассказать, как получить эту запись, переданную методом setRecord(). Для More я могу работать с DataListView. Но это не то, что я хочу. Заранее спасибо. – Arsalan

0

Это мой Tab Panel Вид класса (MyTabPanel)

Ext.define('MyApp.view.MyTabPanel', { 
extend: 'Ext.tab.Panel', 

config: { 
    items: [ 
     { 
      xtype: 'container', 
      title: 'Tab 1', 
      id: 'tab1', 
      items: [ 
       { 
        xtype: 'textfield', 
        label: 'User' 
       }, 
       { 
        xtype: 'container', 
        height: 46, 
        margin: '5px', 
        items: [ 
         { 
          xtype: 'button', 
          ui: 'action', 
          width: 173, 
          text: 'Send Data' 
         } 
        ] 
       } 
      ] 
     }, 
     { 
      xtype: 'container', 
      title: 'Tab 2', 
      id: 'tab2', 
      tpl: [ 
       '{id}' 
      ] 
     }, 
     { 
      xtype: 'container', 
      title: 'Tab 3', 
      id: 'tab3' 
     } 
    ] 
} 

});

0

Это мой контроллер:

Ext.define('MyApp.controller.MyController', { 
extend: 'Ext.app.Controller', 

config: { 
    refs: { 
     Tab1: '#tab1', 
     Tab2: '#tab2', 
     Tab3: '#tab3' 
    }, 

    control: { 
     "Tab2": { 
      activate: 'onTabpanelActivate1' 
     } 
    } 
}, 

onTabpanelActivate1: function(newActiveItem, container, oldActiveItem, eOpts) { 
    var Rec = [{id:1}]; // this should come from my #tab1 tab and set to #tab2 tab 
    this.getTab2().setRecord(Rec); // So this is the problem I am facing 
} 

});

+0

Событие, хотя я также хотел бы отправить некоторый запрос Ajax - так же, как и в случае с данными JSON, которые я получаю, - но я до сих пор не могу передать эти данные – Arsalan

 Смежные вопросы

  • Нет связанных вопросов^_^