javascript - Extjs从一个 View 访问另一个 View

标签 javascript extjs

在 Extjs 中,我试图从另一个 View 访问一个 View 上的某些数据集。两个 View 都呈现在同一页面上。我在 sencha fiddle 创建了一个小应用程序这表明了我正在尝试做的事情。当您单击第二个文本框时,它应该显示第一个文本框的数据。

我想用它的引用值把它拉出来

Ext.application({
    name: 'Fiddle',

    launch: function() {

        Ext.create('Ext.panel.Panel', {
            title: 'Hello',
            reference: 'HelloPanel',
            width: 200,
            html: '<input type="text">',
            renderTo: Ext.getBody()
        });

        Ext.create('Ext.panel.Panel', {
            title: 'Hello2',
            reference: 'fooGrid',
            width: 200,
            html: '<input type="text">',
            renderTo: Ext.getBody(),
            listeners: {
                click: {
                    element: 'el', 
                    fn: function() {
                        alert('Show data from HelloPanel1');
                    }
                }
            }


        });

    }
});

最佳答案

看看这个。刚刚做了一些更改: 由于仅显示 View ,因此您需要定义referenceHolder

下面的例子太琐碎,无法显示引用的力量。为此,您需要制作ViewController。使用 Controller 配置将呈现的 View 绑定(bind)到 Controller 。然后在 Controller 中您可以执行类似 this.lookupReference('superAwesomeTextbox'); 的操作。现在您已经连接到 Controller 中的该组件了。需要注意的是,referenceHolder对于ViewController来说并不是必需的。就这么简单。

Ext.application({
    name: 'Fiddle',

    launch: function() {

        var panel1 = Ext.create('Ext.panel.Panel', {
            title: 'Hello',
            referenceHolder: true,
            reference: 'HelloPanel',
            width: 300,
            items:[{
                xtype: 'textfield',
                fieldLabel: 'textbox',
                reference: 'superAwesomeTextbox'
            }],
            renderTo: Ext.getBody()
        });

        var panel2 = Ext.create('Ext.panel.Panel', {
            title: 'Hello2',
            reference: 'fooGrid',
            referenceHolder: true,
            width: 300,
            items:[{
                xtype: 'textfield',
                fieldLabel: 'textbox',
                reference: 'superAwesomeTextbox2',
                listeners: {
                    focus: function(comp){
                        var textbox = panel1.lookupReference('superAwesomeTextbox');
                        comp.setValue(textbox.getValue());
                    }
                }
            }],
            renderTo: Ext.getBody(),
        });

    }
});

关于javascript - Extjs从一个 View 访问另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129366/

相关文章:

javascript - 鼠标悬停时显示导航

javascript - 如何让 Container 中的多个组件继承 Container 的计算宽度?

javascript - 如何获取网站的最后一个 anchor 元素

javascript - 如何用另一个数组中元素中的字符串替换数组中元素中的字符串?

javascript - 如何在选项卡切换之间保持 Ext.Panel 滚动条位置

JavaScript进度条: Require is not defined

javascript - ExtJS 4 : cloning stores

javascript - 应用模板后,sencha 触摸面板不会滚动

javascript - 使用 for 循环为 map 上的标记设置动画

javascript - AngularJS - 检查模型的字段是否与初始值相同