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的文件,但什么也找不到。对不起,不清楚,但很难解释。请考虑接受你自己的答案,因为你已经解决了这个问题,所以这个问题被视为解决了。当然:此刻它说:“你可以接受你自己的答案明天”。请考虑接受你自己的答案,因为你已经解决了这个问题。所以这个问题被认为已经解决了。当然:)现在它说:“你明天可以接受你自己的答案。”。