Cordova 如何将数据从控制器传递到视图
我在选项卡面板的列表视图中有以下侦听器:Cordova 如何将数据从控制器传递到视图,cordova,extjs,sencha-touch-2,Cordova,Extjs,Sencha Touch 2,我在选项卡面板的列表视图中有以下侦听器: listeners: { itemtap: function (list, index, item, e) { var record = list.getStore().getAt(index); this.fireEvent('showListCommand', this, record); } 这是我的控制器的配置: config: { refs: { mainView: "mainview",
listeners: {
itemtap: function (list, index, item, e) {
var record = list.getStore().getAt(index);
this.fireEvent('showListCommand', this, record);
}
这是我的控制器的配置:
config: {
refs: {
mainView: "mainview",
activeLists: "activelists",
listView: "listview"
// I deleted some code for easier reading
},
control: {
activeLists: {
showListCommand: "onShowListCommand"
}
}
},
onShowListCommand : function (list, record) {
this.activateListView(record);
},
slideLeftTransition: { type: 'slide', direction: 'left' },
activateListView: function (record) {
var listView = this.getListView();
listView.setRecord(record);
console.log(record.get('id'));
Ext.Viewport.animateActiveItem(listView, this.slideLeftTransition);
},
这是控制器中的onShowListCommand函数及其调用的函数:
config: {
refs: {
mainView: "mainview",
activeLists: "activelists",
listView: "listview"
// I deleted some code for easier reading
},
control: {
activeLists: {
showListCommand: "onShowListCommand"
}
}
},
onShowListCommand : function (list, record) {
this.activateListView(record);
},
slideLeftTransition: { type: 'slide', direction: 'left' },
activateListView: function (record) {
var listView = this.getListView();
listView.setRecord(record);
console.log(record.get('id'));
Ext.Viewport.animateActiveItem(listView, this.slideLeftTransition);
},
控制台日志在这里按预期工作,它记录被点击的列表项的id。我还知道setRecord函数可以工作,它在listView的表单文本字段中显示模型中的标题、id和预算字段
现在,在过去的10小时里,我试图成功地将这些模型字段传递到listView,并能够在表单之外使用它们,例如在标题或html中。基本上,我在选项卡面板中有一个列表,在itemtap上,我使用Ext.Viewport.animateActiveItem显示另一个视图
ListView是“Ext.form.Panel”,目前它通过initialize()函数有一个工具栏和一个字段集,但我想用一些简单的html替换字段集,但我不能以任何方式使用setRecord()中的数据。我希望我正确理解了您的意思,但我不确定这是否会对您有所帮助 无论如何,在我的应用程序中,我有一个面板,通过
setData()
函数从控制器中的侦听器函数(onListTap)更新。
这反过来会在面板上/从面板上触发一个updatedata
事件,该事件也会在控制器中获取,然后用于更改面板子级
updatedata侦听器的示例:
onMyPanelUpdate: function(component, newdata, options) {
var holder = component.child("#innerContainer");
holder.child("#detailsText").setData(newData);
holder.child("#detailImg").setSrc(newData.imgUrl);
holder.child("#detailsTitle").setData(newData);
holder.child("#extras").setHtml(newData.extraHtml);
}
希望这对您有所帮助,如果您需要其他帮助或我误解了您的问题,请返回并提出意见。我希望我正确理解了您的意思,但我不确定这是否会对您有所帮助 无论如何,在我的应用程序中,我有一个面板,通过
setData()
函数从控制器中的侦听器函数(onListTap)更新。
这反过来会在面板上/从面板上触发一个updatedata
事件,该事件也会在控制器中获取,然后用于更改面板子级
updatedata侦听器的示例:
onMyPanelUpdate: function(component, newdata, options) {
var holder = component.child("#innerContainer");
holder.child("#detailsText").setData(newData);
holder.child("#detailImg").setSrc(newData.imgUrl);
holder.child("#detailsTitle").setData(newData);
holder.child("#extras").setHtml(newData.extraHtml);
}
希望这对您有所帮助,如果您需要其他帮助或我误解了您的问题,请返回并提出意见。我解决了这个问题。主要问题是我试图显示尚未传递的数据,因为所有这些都在initialize函数中。我也找到了一种通过视口传递数据的方法 下面是显示要将数据传递到的视图的函数的外观:
activateListView: function (record) {
Ext.Viewport.animateActiveItem( {xtype: 'listview', data: record.data}, {type: 'slide', direction: 'left'} );
}
以下是我在视图中使用数据的方式:
var datafield = this.getData();
console.log(datafield .id);
我解决了这个问题。主要问题是我试图显示尚未传递的数据,因为所有这些都在initialize函数中。我也找到了一种通过视口传递数据的方法 下面是显示要将数据传递到的视图的函数的外观:
activateListView: function (record) {
Ext.Viewport.animateActiveItem( {xtype: 'listview', data: record.data}, {type: 'slide', direction: 'left'} );
}
以下是我在视图中使用数据的方式:
var datafield = this.getData();
console.log(datafield .id);
不完全是我需要的,但它在正确的轨道上,谢谢!我不仅仅需要显示数据,我还需要从数据中生成一些变量,并在函数中使用它。。。setData()函数看起来很有前途,有没有一种方法可以使用该函数在视图上直接从中获取数据?或者像getData之类的东西?我在看sencha的文件,但什么也找不到。很抱歉说不清楚,但很难解释。不完全是我需要的,但它在正确的轨道上,谢谢!我不仅仅需要显示数据,我还需要从数据中生成一些变量,并在函数中使用它。。。setData()函数看起来很有前途,有没有一种方法可以使用该函数在视图上直接从中获取数据?或者像getData之类的东西?我在看sencha的文件,但什么也找不到。对不起,不清楚,但很难解释。请考虑接受你自己的答案,因为你已经解决了这个问题,所以这个问题被视为解决了。当然:此刻它说:“你可以接受你自己的答案明天”。请考虑接受你自己的答案,因为你已经解决了这个问题。所以这个问题被认为已经解决了。当然:)现在它说:“你明天可以接受你自己的答案。”。