[Twisted-web] Trouble chaining Javascript module calls in Athena
(example code attached).
L. Daniel Burr
ldanielburr at mac.com
Wed May 30 11:16:27 EDT 2007
Pardon me for jumping in here, but I think you're making this too hard.
On Wed, 30 May 2007 09:53:11 -0500, kgi <iacovou at gmail.com> wrote:
> Yep, I see the attributes for traversing along the hierarchy. Unless I've
> misunderstood, in order for a widget's Javascript to be able to call
> another
> widget's Javascript, it has to do something like:
>
> self.widgetParent.widgetParent.widgetParent ...
> childWidgets[0].childWidgets[1].doStuff()
>
You can certainly do that, but there are plenty of other means of
accomplishing this aim.
For example, a widget has __init__() and nodeInserted() methods that
you can override. If you want your widget instances accessible by
some name known to you, then just do:
self.widgetParent.someNameILikeToUseForThisParticularWidget = self;
Better still, use a client-side event dispatching mechanism, and
just let interested widget subscribe to a given "channel":
MyDispatcher = {
_subscribers: [],
publish: function(channel, message){
...
},
subscribe: function(channel){
}
...
};
Hopefully, this gives you some easier options to consider.
--
L. Daniel Burr
ldanielburr at mac.com
More information about the Twisted-web
mailing list