Extjs6 自定义 js 事件

弗罗林

我有以下流程:在应用程序启动之前,我想检查服务器上的某些内容。我想根据回应做出决定。我创建了一个实用程序类,它包装了我的 js 事件和一个应用程序控制器。

波纹管是应用程序控制器:

Ext.define('MyApp.controller.AppController', {
    extend: 'Ext.app.Controller',
    appEventDispatcher:function (){
      // Create a dummy DOM element 
        var dummy = document.createTextNode('');

        // Create custom wrappers with nicer names
        this.off = dummy.removeEventListener.bind(dummy);
        this.on = dummy.addEventListener.bind(dummy);
        this.trigger = function(eventName, data){
            if( !eventName ) return;
            var e = new CustomEvent(eventName, {"detail":data});
            dummy.dispatchEvent(e);
        }
    }
 });

我的实用程序类:

Ext.define('MyApp.util.Util', {

    statics : {
        checkSomethingOnServer: function(customEvent){
            var store = Ext.StoreManager.lookup('appStore');
            store.load({
                scope: this,
                callback: function(records, operation, success){
                    if (success === true){
                        customEvent.trigger('success', true);
                    if (success === false)
                        debugger;
                        customEvent.trigger('fail', true);   
                    }
                }
            });
        }

    }
});

使用实用程序类我加载了一个商店。在回调方法中,我触发了我的自定义事件。此事件在 app.js 文件中处理。

该代码在 fiddle 中工作并使用 app watch,当我想构建代码时,会发生一些错误(语法错误)。

我还创建了一个fiddle

如何在 ExtJS 中创建自定义事件以及如何使用它?我需要与 js 事件相同的行为,但需要 Extjs 实现。

亚历山大

在 ExtJS 中,您只需使用自定义事件的名称将事件侦听器附加到商店:

store.on('myownevent', function(success) {
    console.log(success);
});

并且您的代码可能会继续并以该名称在商店中触发事件:

store.load({
    scope: this,
    callback: function(records, operation, success){
        store.fireEvent('myownevent', success);
    }
});

如果没有附加该事件的侦听器,则什么也不会发生;如果附加了一个或多个侦听器,则它们按优先级顺序执行,对于具有相同优先级的侦听器,则按添加顺序执行。

https://fiddle.sencha.com/#view/editor&fiddle/21g7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有自定义配置绑定的 Extjs6 自定义按钮

来自分类Dev

在ribs.js中触发自定义事件

来自分类Dev

在video-js中如何创建自定义事件?

来自分类Dev

无法在Vue.JS上捕获自定义事件

来自分类Dev

从单独的文件触发JS自定义事件

来自分类Dev

在ribs.js中触发自定义事件

来自分类Dev

在节点 js 中捕获自定义事件

来自分类Dev

在extjs6应用程序构建中添加自定义文件

来自分类Dev

Extjs自定义事件触发了两次。事件在选择事件回调上触发

来自分类Dev

内置事件和自定义事件的node.js事件循环行为差异

来自分类Dev

定义自定义事件

来自分类Dev

node.js自定义事件:无法调用未定义的方法“ emit”

来自分类Dev

node.js自定义事件:无法调用未定义的方法“ emit”

来自分类Dev

自定义UserControl事件

来自分类Dev

PyGame自定义事件

来自分类Dev

自定义事件问题

来自分类Dev

自定义事件触发

来自分类Dev

QThread自定义事件

来自分类Dev

我应该在React JS中使用自定义事件委托吗

来自分类Dev

如何在Ember.js中创建自定义事件,或组织异步行为?

来自分类Dev

JS-无法在自定义事件的处理程序中将此指向调用方

来自分类Dev

如何在fabric.js的画布上触发自定义事件?

来自分类Dev

如何在d3.js中自定义事件侦听器?

来自分类Dev

将常规的自定义js事件绑定到角度控制器功能

来自分类Dev

在Vue.js单个文件组件中仅侦听一次自定义事件

来自分类Dev

在Geocoder事件中刷新MapBox GL JS中的自定义线串图层

来自分类Dev

如何在d3.js中自定义事件侦听器?

来自分类Dev

如何使用Browserify(CommonJS)在骨干JS中为socketio注册自定义事件

来自分类Dev

angular 4、zone.js 和一个 javascript 库的自定义事件

Related 相关文章

热门标签

归档