Как поднять глобальное событие в додзё? - PullRequest
3 голосов
/ 04 декабря 2009

Я пытаюсь вызвать событие для всех виджетов, которые его ловят. У меня есть виджет аутентификации и другие виджеты, которые зависят от того, вошел ли пользователь в систему. Я хотел бы вызвать событие для всех этих виджетов, когда пользователь вошел в систему, не подключая их вручную. Как это можно сделать?

Ответы [ 3 ]

4 голосов
/ 04 декабря 2009

Попробуйте dojo.publish и dojo.subscribe

Возможно, это лучшая ссылка

2 голосов
/ 18 ноября 2011

Вот несколько более подробных и актуальных ссылок на pub / sub в Dojo:

Сообщения блога
http://davidwalsh.name/dojo-pub-sub
http://startdojo.com/2010/05/21/decoupling-widget-to-widget-interaction-with-dojo/
http://www.naelshawwa.com/dojo-how-to-publish-subscribe-2/

Docs
http://dojotoolkit.org/reference-guide/dojo/publish.html
http://dojotoolkit.org/reference-guide/dojo/subscribe.html
http://dojotoolkit.org/reference-guide/quickstart/events.html (особенно последний раздел)

Как только ваше веб-приложение на javascript становится слишком сложным, pub / sub становится удачной находкой, позволяя вам разделить ваши классы и сделать ваш код более понятным и модульным.

1 голос
/ 06 декабря 2009
dojo.subscribe("mytopic",console,"debug");
dojo.publish("mytopic",["whatever"]);
...