Я хочу передать идентификатор из TabView (myView1) в контроллер (theController), то после того, что я хочу, Класс контроллера для передачи данных другому TabView (myView2) на той же панели. У любого есть идея, как я могу это сделать?Сенча Touch: Как я могу передать данные с целью контроллера и контроллера к следующему виду
ответ
Вы можете сделать как этот
в контроллере:
config:{
refs:{
myView1: "myView1Ref",
myView2: "myView2Ref"
},
controls:{
myView1:{
idgiven: "onIdGiven"
}
}
},
onIdGiven: function(id){
this.getMyView2().setData(yourData);
}
в MyView1, когда вы хотите дать идентификатор, вобще
this.fireEvent(yourId);
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);
}
})
Привет, Ратхор! Я получаю ваш ответ, но я не знаю, как получить значения в myView2. Я пытался использовать tpl, но записи еще не было. Можете ли вы рассказать, как получить эту запись, переданную методом setRecord(). Для More я могу работать с DataListView. Но это не то, что я хочу. Заранее спасибо. – Arsalan
Это мой 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'
}
]
}
});
Это мой контроллер:
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
}
});
Событие, хотя я также хотел бы отправить некоторый запрос Ajax - так же, как и в случае с данными JSON, которые я получаю, - но я до сих пор не могу передать эти данные – Arsalan
привет, я верю, что идентификаторы являются уникальными объектами зрения, к которым он может получить доступ в глобальном масштабе для использования по мере необходимости .. – codebreaker
@Mureinik, см. Ответ ниже – Arsalan