Mechanizm Event-ów w JS-ie
Mechanizm eventów w JS-ie, najlepiej wywoływać w metodzie toHtml
. Event uruchamiamy poprzez ROS.EventEmitter
, który posiada 3 różne funkcje, tj.
on
- czyli uruchomienie nasłuchiwania eventu.
Jako parametr należy podać nazwę eventu, który będzie nazsłuchiwany.
Przykład
ROS.EventEmitter.on('events:delete.'.$this->name.'',
function(event, data) {
}
);
off
- czyli wyłączenie nasłuchiwania eventu.
Przykład
ROS.EventEmitter.off('events:delete.'.$this->name.'');
trigger
- Czyli wyzwalacz eventu, jako 2 parametr przekazujemy dane w formie json-a, te dane są przesyłane do funkcji wywołanej podczas uruchamiania nasłuchania eventu (patrz ptk. 1)
Przykład
ROS.EventEmitter.trigger('events:delete.'.$this->name.'', {doc_id:'.$documentId.'});
Jak nazywać eventy i jak naprawde można je wywołać
Bardzo ważną sprawą jest nazewnictwo eventów, dla przykładu stworzymy event, który będzie reagował na zapis karty pracy
Nie poprawne nazewnictwo
ROS.EventEmitter.on('rcp.save.'+NAZWA);
NAZWA - reprezentuje tak naprawdę, nazwę pola na dialogu,
UWAGA
Powyższy przykład nazwy jest nie dobry!
Gdyż, zarejestrowany event o nazwie rcp.save.
, możemy wywołać także przez podanie samej nazwy rcp
i jeśli będziemy mieć w podobny sposób zarejestrowane eventy na otwarciu, utworzeniu dialogu i w jeszcze jakimś specyficznym momencie, w tedy zostaną zwrócone wszystkie obiekty z eventu rcp
Poprawna nazwa eventu
ROS.EventEmitter.on('rcp:save.'+NAZWA);
NAZWA - reprezentuje tak naprawdę, nazwę pola na dialogu,
Poprzez dodanie dwukropka :
w nazwie eventu, wywołując powyższy skrypt, odbierzemy tylko 1 obiekt eventu.