首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有在Ext.Button上命名的方法

没有在Ext.Button上命名的方法
EN

Stack Overflow用户
提问于 2018-10-04 12:37:07
回答 1查看 595关注 0票数 1

我试着用控制器从主视图中逐个调用表单。所以我使用主视图js,表单js和控制器js:

代码语言:javascript
复制
Ext.define('App.view.main.Main', {
    extend: 'Ext.form.Panel',
    id:'control-panel',
. . .
items: [{
                    xtype:'button',
                    ui: 'action',                   
                    text: 'Renter',
                    id: 'RenterId',
                    handler:'adClick'
. . .

和控制器js:

代码语言:javascript
复制
Ext.define('App.view.main.ButtonController', {

    extend: 'Ext.app.ViewController',

    alias: 'controller.button',

    requires: ['App.view.forms.RenterData',
               ],


    views: ['App.view.main.Main'],

    refs: [{
        ref: 'control-panel',
        selector: 'control-panel'
    }],

    adClick: function() {
          Ext.create('Ext.panel.Panel', {
             title:'Test',
             layout: 'fit',

             autoshow: true,
             items: {
                 xtype:'panelxtype'
            }

        })
        }



});

当我尝试点击我的按钮时,我将面对next:没有在Ext.Button上命名的方法“Ext.Button”。所以我认为从主角度看处理程序是行不通的.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-04 13:46:04

下面是一个您想要的控制器小提琴的工作示例

app.js

代码语言:javascript
复制
Ext.application({
 name: 'Test',
 requires: ['Test.view.Main', 'Test.view.MyForm'],
 mainView: 'Test.view.Main',
 launch: function () {}
});

app/view/Main.js

代码语言:javascript
复制
Ext.define('Test.view.Main', {
extend: 'Ext.container.Viewport',
title: 'main',
xtype: 'main',
requires:['Test.view.MainController'],
controller:'mainController',
width: 600,
height: 400,
layout: 'border',
items: [{
    region: 'north',
    height: 100,
    items: [{
        xtype: 'button',
        text: 'Open Form in pop up window',
        handler: 'onOpenForm'
    }, {}, {
        xtype: 'button',
        text: 'Open Form View Port Center Region',
        handler: 'onOpenFormInPanel'
    }]

}, {
    region: 'center',
    id: 'mycenter',
    title: 'Center Region',
    items: [{
        html: ''
    }]
}]
})

app/view/MainController.js

代码语言:javascript
复制
Ext.define('Test.view.MainController', {
extend: 'Ext.app.ViewController',
alias: 'controller.mainController',
onOpenFormInPanel: function () {
    let myForm = Ext.create('Test.view.MyForm')
    this.getView().items.getAt(1).add(myForm);
},
onOpenForm: function () {
    Ext.create('Ext.window.Window', {
        title: 'Popup',
        width: 400,
        height: 100,
        autoShow: true,
        items: {
            xtype: 'myForm'
        }
    })
}
});

app/view/MyForm.js

代码语言:javascript
复制
Ext.define('Test.view.MyForm', {
extend: 'Ext.form.Panel',
xtype: 'myForm',
width: 400,
height: 200,
items: [{
    xtype: 'textfield',
    name: 'mtfield',
    fieldLabel: 'TextField'
}]
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52646905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档