1

当我使用 xtype 将它添加到另一个项目中时,我试图制作一个自定义视图并传递一个值。它看起来很简单,因为我不需要使用商店或类似的东西,它只是静态值,但我无法实现它:(

我的想法是将它放在一个组件中(我的自定义组件的父级):

...
items: [{
    xtype: 'myNewComponent',
    car: 'Renault'
}]
...

然后在我的自定义组件中获取值:

Ext.define('myNewComponent', {
    extend: 'Ext.Panel',
    xtype: 'myNewComponent',
    config: {
        items: [{
            html: 'This is my car: ' + this.config.car
        }]
    }
});

我想我不明白一些事情,你能帮帮我吗?

谢谢!

4

1 回答 1

1

你需要做两件事。

首先,您必须在自定义组件中创建一个新配置。这样做就像将它添加到config类的对象中一样简单:

Ext.define('myNewComponent', {
    extend: 'Ext.Panel',
    xtype: 'myNewComponent',
    config: {
        car: null
    }
});

null如果您在创建组件时不更改它,这里只是默认值。

现在我们要使用这个新配置。您所做的将不起作用,因为范围this.config.car是 DOM 窗口。您将需要使用类的函数来创建项目。您可以通过使用新配置的新updateCar方法来实现这一点。car每当您更新该配置时,都会调用此方法。在您的情况下,那是您第一次创建自定义组件的时候。

Ext.define('myNewComponent', {
    ...

    updateCar: function(newCar) {
        this.add({
            html: 'This is my car: ' + newCar
        });
    }
});

您可以在此处了解有关配置系统如何工作的更多信息:http: //docs.sencha.com/touch/2-1/#!/guide/ class_system

于 2013-01-23T20:46:20.187 回答