将值从一个视图发送到另一个ExtJS 4

时间:2018-06-29 15:48:09

标签: extjs extjs4 extjs4.1 extjs4.2 extjs6

我想将值从一个视图发送到另一个视图,我有一个在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的替代方案是什么?

1 个答案:

答案 0 :(得分:1)

ViewModels是在Ext JS 5中引入的,这就是为什么它在Ext JS 4中不起作用的原因。

要在Ext JS 4中做到这一点,您必须找到组件(在这种情况下为textareafield),然后执行setter(在本示例中为setValue)。这是Ext JS 4中的全部手册。

获取组件取决于很多事情,但是最好的方法是使用ComponentQuery并取决于执行此操作的代码在哪里。首先,您必须获取test.text实例,然后使用comp.child('textareafield')。我不能给您一个银弹般的例子,因为它取决于许多因素,但是使用组件的downchildqueryup方法是一个很好的起点,并且它们都有不同的用途