Регистрация пользовательских событий (Extjs) - PullRequest
1 голос
/ 04 ноября 2011

Я хочу запустить событие в пользовательском классе, написанном в Extjs 4.

Я создал собственный класс, используя ExtJs и расширен из класса Observable для регистрации события.

var settingWindows = Ext.define("Setting", {
    extend: 'Ext.util.Observable',
    title: "",
    window: null,
    userId: 0,
    windowWidth: 650,
    windowHeight: 400,
    columns: [],
    settings: [],
    ruleList: [],
    isColorPickerOpen: false,
    currTrObj: null,
    currColorType: null,

    constructor: function(config) {
        this.windowWidth = config.windowWidth || 650;
        this.windowHeight = config.windowHeight || 400;
        this.title = config.title || "";
        this.userId = config.userId || 0;
        this.settings = config.settings || [];
        this.CreateWindowSettingsWindows();
        this.addEvents('myCustomEvent');
    },
});

В constructor Я добавил регистрацию для myCustomEvent.

И в вызове ajax я пытаюсь вызвать

 Ext.Ajax.request({
     url: url,
     contentType: "application/json",
     method: 'POST',
     dataType: 'json',
     jsonData: Ext.encode(this.settings),
     failure: function(response, options) {
         Ext.MessageBox.alert(response.statusText);
     },
     success: function() {
         Ext.MessageBox.alert("Data was updated");
         this.fireEvent('myCustomEvent', 1);
     }
 });

Пожалуйста, просите

1 Ответ

1 голос
/ 04 ноября 2011

если Ext.Ajax.request помещен в метод вашего класса «Setting», просто добавьте параметр scope к вашему вызову Ext.Ajax.request:

Ext.Ajax.request({
        url: url,
        contentType: "application/json",
        method: 'POST',
        dataType: 'json',
        jsonData: Ext.encode(this.settings),
        failure: function (response, options) {
            Ext.MessageBox.alert(response.statusText);
        },
        success: function () {
            Ext.MessageBox.alert("Data was updated");
            this.fireEvent('myCustomEvent', 1);
        },
        scope: this
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...