7

我有一个控制器,我想将一个简单的字符串值传递给下一个视图。

为此,我正在创建这样的视图。

var nextView = Ext.create('MyApp.view.NextView', {
    content: 'value'
});
Ext.Viewport.add(nextView);
Ext.Viewport.animateActiveItem(nextView, {
    type: 'slide',
    direction: 'left'
});

NextView 上,我有一个标签,我想将HTML标签的属性设置为我从控制器传递的值。IE。value.

我的NextView看起来像这样。

Ext.define('MyApp.view.NextView', {
    extend: 'Ext.form.Panel',
    config: {
        content: 'null',
        items: [{
            xtype: 'label',
            html: 'value'
        }]
    }
});

我不知道如何从这里开始。我不能将 NextView 作为表单。在这种情况下,我只需要传递一个字符串值。

实现这一目标的最佳方法是什么?

4

2 回答 2

9

使用initialize方法访问配置数据,如下所示:

Ext.define('MyApp.view.NextView', {
    extend: 'Ext.form.Panel',
    config: {
        content: 'null',
        items: [
            {
                xtype: 'label',
                html: 'value'
            }
        ]
    },
    initialize : function(){
        this.callParent();
        var val = this.config.content;
        this.down('label').setHtml(val);
    }
});

PS随意在函数中使用你最喜欢的选择down

于 2013-05-27T12:03:13.997 回答
4

我知道这个问题已经回答了。但我只是挖掘了一种非常自然的方式将数据从控制器传递到视图(使用视图的构造函数)。我在将 Web 桌面集成到我的应用程序时使用它。

在控制器中,将数据传递给视图的构造函数,如下所示:

loiTab = Ext.create('Iip.view.giips.admission.DetailedLoiTab', {closable: true, selectedLoiData: selected[0].data});

在视图中,启动一个构造函数,如下所示:

constructor: function(selectedLoiData) {
    Ext.applyIf(this, selectedLoiData);
    this.callParent();
},

以下方法与构造函数位于同一文件中。您可以从构造函数所在的视图中的任何位置访问 selectedLoiData,如下所示:

initComponent: function(){
    console.log(this.selectedLoiData);
}
于 2013-06-29T14:16:23.250 回答