After
such a pretentious title we can all stop and take a
one week sleep. WTF do I want from you now, you probably ask. yeah, ok. check this out:
Think about this
next situation - You have a nice component which potentially can host several
other components, each can dispatch a different event, an event that needs to
be handled of within the "parent" component.
We cannot let the
"parent" component manage all the events potentially fired from its
nested components, right? I mean, we can let it but then we will pretty much
shit into our own development experience and maintenance, after all, we want the "parent"
component to be aware of a single Event data model.
Being aware of a
single event data model means that the "parent" component will expect
a single format of data when receiving events from any of its nested components. It
will not matter what's the data model of each nested component, something will have
to align it into a single well-known model. The question is who?
We need some kind of
a delegator, which will know all the potential events and will process their
data and send a nice formatted data back to the "parent" component.
So, if we are to
drill into more details, we're actually talking about extending the
"parent" component's Scope, since it is that Scope which will
eventually listen to all these events, but it will be done in a sort of a
"mixin" approach.
The solution I came
up with introduces a service which has a single method registering the
"parent" component's scope. From there on, the service will extend
the Scope and eventually send an event back to the "Parent" component
with the processed event data.
Simple does it.
The POC can be found
in Plunker
I would love to hear
if you have any comments about it.
Cheers
No comments:
Post a Comment