我想将值从一个视图发送到另一个视图,我有一个在ExtJS 6
中有效但在ExtJS 4
中无效的代码。
这是第一个:
var test = Ext.create('test.text', {
delayedRenderTo: container_id,
id: 'messageBox-' + meta.rowIndex,
viewModel: {
data: {
value: value
}
}
});
和我们将其绑定为:
Ext.define('test.text', {
extend: 'Ext.Panel',
layout: {
type: 'vbox',
align: 'stretch',
overflow: 'scroller',
},
items: [{
xtype: 'textareafield',
grow: true,
growMin: 30,
growMax: 120,
disabled: true,
fullscreen: true,
bind: {
value: '{value}',
},
fieldStyle: 'font-weight:bold;'
}]
});
ExtJS 4
的替代方案是什么?
答案 0 :(得分:1)
ViewModels是在Ext JS 5中引入的,这就是为什么它在Ext JS 4中不起作用的原因。
要在Ext JS 4中做到这一点,您必须找到组件(在这种情况下为textareafield
),然后执行setter(在本示例中为setValue
)。这是Ext JS 4中的全部手册。
获取组件取决于很多事情,但是最好的方法是使用ComponentQuery并取决于执行此操作的代码在哪里。首先,您必须获取test.text
实例,然后使用comp.child('textareafield')
。我不能给您一个银弹般的例子,因为它取决于许多因素,但是使用组件的down
,child
,query
,up
方法是一个很好的起点,并且它们都有不同的用途