gpt4 book ai didi

javascript - 如何将配置属性赋予 Extjs 6 中的 View 项?

转载 作者:行者123 更新时间:2023-11-30 15:48:05 27 4
gpt4 key购买 nike

在 Extjs 6 中,如何通过绑定(bind)或直接分配将配置属性直接分配给 View ?

Ext.define('App.view.main.Main', {
extend: 'Ext.Container',

config: {
btnLabel: 'MyButton'
},

someOtherProperty:'xyz',

items: [{
xtype:'button',

//text:this.someOtherProperty,
//text:this.btnLabel,
//text:this.getBtnLabel(),

//here accessing this throws error, while loading this refers to windows object and not the class...
width:'150px'
}],
});

我可以将属性移动到 ViewModel 并访问它,但我的问题是,我们不能将类级属性分配给它的子组件吗?

最佳答案

好吧,不是那样你做不到。问题是您在类原型(prototype)中定义项目 - 这意味着您不能对那里的实例做任何特定的事情。

这就是 initComponent 的用途。我通常在那里定义我的 items 属性,明确用于此目的:

Ext.define('App.view.main.Main', {
extend: 'Ext.Container',
config: {
btnLabel: 'MyButton'
},
someOtherProperty:'xyz',

initComponent: function() {
// The config properties have already been transferred to the instance
// during the class construction, prior to initComponent being called.
// That means we can now call this.getBtnLabel()
this.items = [
{ xtype: 'button',
text: this.getBtnLabel(),
width:'150px'
}]

// Call the parent function as well. NB: After this, items won't be
// a simple array anymore - it gets changed into a collection of
// components.
this.callParent(arguments);
}
});

一般来说,在类级别属性中添加对象时要小心,因为它们将是原型(prototype)上的属性,并在该类的所有实例之间共享。

关于javascript - 如何将配置属性赋予 Extjs 6 中的 View 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39767629/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com