我无法将数据从控制器传递到 Sencha Touch 2.4 中的视图
Posted
技术标签:
【中文标题】我无法将数据从控制器传递到 Sencha Touch 2.4 中的视图【英文标题】:I cannot pass data from controller to a view in Sencha Touch 2.4 【发布时间】:2015-07-03 07:15:42 【问题描述】:我尝试了一些不同的方法,但无法将数据从控制器传递到视图(传递到容器内的组件)。
这里有ServisDetail.js的视图:
Ext.define('Asistan.view.ServisDetail',
extend: 'Ext.Container',
xtype: 'servisDetail',
config:
layout: 'fit',
items : [
xclass : 'Asistan.view.ServisToolbar'
,
// "data: " is needed to work. I try to pass data from controller to here
xtype: 'component',
tpl: Ext.create('Ext.XTemplate','URUN_CIHAZ_ADI jkjk')
]
);
这是我的控制器Servis.js,我认为 认为它应该可以工作。但它没有传递数据:
Ext.define('Asistan.controller.Servis',
extend: 'Ext.app.Controller',
config:
refs:
servis: 'servisNavigationView servisContainer list',
,
control:
servis:
itemdoubletap: 'showServis'
,
showServis: function(item, index, e, eOpts)
this.servis = Ext.widget('servisDetail');
this.servis.config.items[1].data = eOpts.data; // <- Here! It doesn't work. console.log shows that the data is there but in the browser the data doesn't show up.
console.log(this.servis.config.items[1].data); // I can see my data here, right before the push
item.up('servisNavigationView').push(this.servis);
);
我错过了什么?
【问题讨论】:
【参考方案1】:尝试使用
showServis: function(item, index, e, eOpts)
this.servis = Ext.widget('servisDetail');
this.servis.setData(eOpts.data); // setData applies the data to the container template.
item.up('servisNavigationView').push(this.servis);
【讨论】:
你的代码将数据发送到容器,而不是tpl
的组件。
您应该避免在 Sencha Touch 应用程序中使用 Ext.getCmp()。如果您的页面中有多个组件实例,您将遇到问题。请改用 Ext.ComponentQuery 方法。
我更喜欢使用 itemId 而不是 id,这样您就可以销毁视图并重新创建它们。【参考方案2】:
带有tpl
的项目应该有一个id
。
id: 'itemWithTpl', // <- here
xtype: 'component',
tpl: Ext.create('Ext.XTemplate','URUN_CIHAZ_ADI jkjk')
还有控制器:
showServis: function(item, index, target, record, e, eOpts)
this.servis = Ext.widget('servisDetail');
item.up('servisNavigationView').push(this.servis);
Ext.getCmp('itemWithTpl').setData(record.data); // <- here
【讨论】:
以上是关于我无法将数据从控制器传递到 Sencha Touch 2.4 中的视图的主要内容,如果未能解决你的问题,请参考以下文章
使用控制器将参数从 Sencha Touch 2 中的视图发送到其他视图