Szukaj…


Wprowadzenie

ExtJS zaleca stosowanie odpalania i nasłuchiwania zdarzeń między klasami. Odpalając zdarzenia i nasłuchując wystrzelonych zdarzeń, klasy nie wymagają „brudnej” znajomości struktury klas innych i zapobiegają łączeniu kodu. Ponadto zdarzenia ułatwiają słuchanie wielu wystąpień tego samego komponentu, umożliwiając ogólnemu nasłuchiwaniu wszystkich obiektów z tym samym selektorem. Wreszcie inne klasy mogą także być w stanie wykorzystać zdarzenia, które już istnieją.

Kontrolery nasłuchujące na komponentach

Ext.define('App.Duck', {
    extend: 'Ext.Component',
    alias: 'widget.duck',
    initComponent: function () {
        this.callParent(arguments);
        this._quack();
    },
    _quack: function () {
        console.log('The duck says "Quack!"');
        this.fireEvent('quack');
    },
    feed: function () {
        console.log('The duck looks content.');
    },
    poke: function () {
        this._quack();
    }
});
    
var feedController = Ext.create('Ext.app.Controller', {
    listen: {
        components: {
            duck: {
                quack: 'feedDuck'
            }
        }
    },
    feedDuck: function (duck) {
        duck.feed();
    }
});

var countController = Ext.create('Ext.app.Controller', {
    listen: {
        components: {
            duck: {
                quack: 'addCount'
            }
        }
    },
    quackCount: 0,
    addCount: function (duck) {
        this.quackCount++;
        console.log('There have been this many quacks: ' + this.quackCount);
    }
});

var firstDuck = Ext.create('App.Duck');
// The duck says "Quack!"
// The duck looks content.
// There have been this many quacks: 1
var secondDuck = Ext.create('App.Duck');
// The duck says "Quack!"
// The duck looks content.
// There have been this many quacks: 2
firstDuck.poke();
// The duck says "Quack!"
// The duck looks content.
// There have been this many quacks: 3


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow