在ExtJS自定义视图中访问根属性?/重复组件
出于测试目的,我创建了两个视图。需要另一个视图的视图。现在我希望人们能够作为一个选项卡多次打开组件,所以我显然必须为组件内部的每个选项卡和元素分配唯一的ID,对吗 我的问题是,如何从docketItems对象访问视图中的一个根属性? 在下面的代码中,它将在在ExtJS自定义视图中访问根属性?/重复组件,extjs,extjs6-classic,Extjs,Extjs6 Classic,出于测试目的,我创建了两个视图。需要另一个视图的视图。现在我希望人们能够作为一个选项卡多次打开组件,所以我显然必须为组件内部的每个选项卡和元素分配唯一的ID,对吗 我的问题是,如何从docketItems对象访问视图中的一个根属性? 在下面的代码中,它将在id:'accountSearchField'+this.varindex,处导致未定义的this.varindex错误。varindex是从另一个组件动态分配的。(我在下面的示例代码中对其进行了硬编码) 请注意,我不知道确切的ID,因此无法使
id:'accountSearchField'+this.varindex,
处导致未定义的this.varindex
错误。varindex是从另一个组件动态分配的。(我在下面的示例代码中对其进行了硬编码)
请注意,我不知道确切的ID,因此无法使用Ext.getCmp
之类的内容。我可以使用Ext.ComponentQuery.query('searchAccount')
,但也许有更好的方法
下面列出的是我的主要组件所需的部分代码
Ext.define('cp.views.search.Account', {
extend: 'Ext.panel.Panel',
xtype: 'searchAccount',
varindex: "uniqueid_assigned_by_main_component",
listeners: {
beforerender: function(){
this.id = 'panelSearchAccount' + this.varindex
}
},
items: [
{
xtype: 'grid',
store: {
type: 'Account'
},
id: 'searchAccount' + this.varindex,
columns: [
///
],
dockedItems: [
{
xtype: 'fieldset',
items: [
{
id: 'accountSearchField' + this.varindex,
xtype: 'searchfield'
}
]
}]
}
]
});
事实上我可能已经弄明白了。我只是简单地将项目移动到beforerender事件中,并使用了
this.add()
函数。实际上我可能已经找到了答案。我只是将项目移动到beforerender事件中,并使用了this.add()
函数。Ext将为DOM元素生成id,并确保它们对页面是唯一的,因此使用id属性引用组件是不常见的。有两个用于此目的的配置属性,itemId和reference
可以使用多种方法从父容器或全局获取组件
for (var i = 0, ilen = accountModels.length; i < ilen; ++i) {
container.add({
xtype: 'accountpanel',
reference: accountModel[i].get('accountNumber')
});
}
Ext将为DOM元素生成id,并确保它们对页面是唯一的,因此使用id属性来引用组件是不常见的。有两个用于此目的的配置属性,itemId和reference 可以使用多种方法从父容器或全局获取组件
for (var i = 0, ilen = accountModels.length; i < ilen; ++i) {
container.add({
xtype: 'accountpanel',
reference: accountModel[i].get('accountNumber')
});
}