Javascript ExtJS:按钮,操作为json格式

Javascript ExtJS:按钮,操作为json格式,javascript,json,extjs,Javascript,Json,Extjs,如何创建带有操作的x型按钮: 为了在中创建一些小部件,我们使用Json文件来构造它。 如果我写这样的东西,sencha ext js将在这个json上工作,并按照我的预期生成 "editViewFields": [ { "xtype": "textfield", "name": "text1", "fieldLab

如何创建带有操作的x型按钮:

为了在中创建一些小部件,我们使用Json文件来构造它。 如果我写这样的东西,sencha ext js将在这个json上工作,并按照我的预期生成

"editViewFields": [
                    {
                        "xtype": "textfield",
                        "name": "text1",
                        "fieldLabel": "Text 1 : "
                    },
                    {
                        "xtype": "button",
                        "text": "name",
                        "width": 75
                    }
                  ]
它将生成一个文本字段和按钮

现在我想创建一个按钮,动作如下

 text : 'Button',
    renderTo : Ext.getBody(),
    listeners: {
        click: function() {
            // this == the button, as we are in the local scope
            this.setText('I was clicked!');
        }
    }
像这样的事情我试过了,但没有成功:

            {
                "xtype": "button",
                "text": "name",
                "width": 75,
                "enableToggle": true,
                "listeners": {
                    "click": {
                        "this.setText": "(I was clicked!)"
                    }
                }
            }

请提供所有关于此的宝贵信息。

您的侦听器配置看起来不正确。应该是这样的

{
    xtype: 'button',
    text: 'Click me!',                

    listeners: {
        "click": function(btn){
            btn.setText('I was clicked!');
        }
    }        
}
这是一把小提琴:

这里还有一个到listeners文档的链接,以及配置它的另一种方法

尝试使用如下所示的“处理程序”配置(

所以你的代码应该是

{
    "xtype": "button",
    "text": "name",
    "width": 75,
    "enableToggle": true,
    "handler": function (button, options) {
        button.setText("I was clicked!");        
    }
}

我想你的按钮被渲染对了吧?那么你的听众不工作了?!是的,按钮被渲染,但听众不工作。我不知道为什么这个答案被否决了,因为它确实回答了问题,并且在小提琴上演示了它。嘿,它工作得很好。但是,我应该如何用json字符串编写函数!!!!:/我正在尝试的是通过json字符串创建一个带有操作的按钮,在我的代码部分第3部分的问题中,你可以看到我尝试了什么,你想让我在那里为键“click”写“function(btn)”?我可以问一下你为什么需要这些字符串吗?实际上我在mozu引擎中使用它,通过ext js的json值创建了新的小部件,但没有创造任何东西。只创建了一些文本字段和标签。您可以检查向她提供的默认小部件,这些小部件具有许多功能。为什么处理程序值不是json格式,json解析本身在第行显示错误:“处理程序”:函数(按钮,选项){button.setText(“我被点击了!”);}如果您有一个控制器,那么在那里创建一个函数来处理点击事件。然后添加一个控制器级事件,该事件依次调用此单击处理程序。因此,您的处理程序属性将类似于“handler”:“myClickHandlerFunction”不,我没有控制权,我只能编写json字符串。如果你问我,是什么让我想到在那里添加一些操作,因为它们提供了一些默认的小部件,其中有许多操作。但没有透露密码。无论如何,谢谢。添加点击处理程序的另一种方法是为按钮设置唯一的“id”配置(例如:id:“MyButtonneLementID”),然后使用纯JS为该按钮编写侦听器。例如,document.getElementById(“MyButtonneLementId”).onclick=function(){doSomeAction()};
{
    "xtype": "button",
    "text": "name",
    "width": 75,
    "enableToggle": true,
    "handler": function (button, options) {
        button.setText("I was clicked!");        
    }
}