Hi Cindy - thanks for taking the effort to compile this report.
In fact, the reference "{videoPlayer}.refresh" is fine and is resolved
correctly by the framework.
The error actually lies in the reference "{videoPlayer}.onCaptionsLoaded" inside the captionLoader
subcomponent. This would most likely have been silently resolved incorrectly by the old framework, and is
correctly resolved to undefined by the new framework, but with a completely unhelpful diagnostic. The
correct reference here is "{videoPlayer}.events.onCaptionsLoaded".
I've issued a patch to issue a sensible diagnostic for this case under
FLUID-4151:
https://github.com/fluid-project/infusion/pull/198
With this patch you should now receive a diagnostic like this:
02:12:09.254: ASSERTION FAILED: Error in listener record - could not resolve reference
{videoPlayer}.onCaptionsLoaded to a listener or firer. Did you miss out "events." when referring to an event
firer?
while resolving listener record for event named onCaptionsLoaded for component Object {
typeName="fluid.videoPlayer.captionLoader", id="5ig0id6z-97", nickName="captionLoader", more...}
while instantiating dependent component with name "captionLoader" with record Object {
type="fluid.videoPlayer.captionLoader", container="{videoPlayer}.container",
createOnEvent="onTemplateReady", more...} as child of Object { typeName="fluid.videoPlayer",
id="5ig0id6z-8", nickName="videoPlayer", more...}
Thanks,
Antranig
On 23/01/2012 14:48, Li, Cindy wrote:
Hi Antranig,
During the process of integrating the upgraded infusion into the video player, one issue is that the new
infusion no longer works with the video player master branch that uses the combination of pulling in
sub-components with decorators and referring to these sub-components using our magic curly brackets, which
probably is not a proper scenario that IoC is happy with. The stopper in this case is that the video player
throws javascript error: "listener is undefined" @ line 693 from "FluidIoC.js" at parsing
a listener reference of "{videoPlayer}.refresh" as well as this type of other declarations.
However, the new infusion works well with the re-constructed video player which replaces
the decorators with the "component" declarations in the default block of the
parent component.
So, the question is same as the 'applyChange' discussion that was ongoing
earlier this morning: should we maintain the backwards compatibility to
continue supporting the sub-component referencing to the components that are
declared via decorators?
Two branches in case you need a demonstration of the problem:
* The branch with the new infusion that branches off the video player master
and throws js error:
https://github.com/cindyli/videoPlayer/tree/FLUID-master-withNewInfusion
* The branch with the new infusion that branches off the re-constructed video
player and works well:
https://github.com/cindyli/videoPlayer/tree/FLUID-4559-withNewInfusion
Thanks
Cindy
_______________________________________________________
fluid-work mailing list - [email protected]
To unsubscribe, change settings or access archives,
see http://lists.idrc.ocad.ca/mailman/listinfo/fluid-work