FLUID-4337: Error when resolving listener specified by global name to boiled event

Metadata

Source
FLUID-4337
Type
Bug
Priority
Blocker
Status
Closed
Resolution
Fixed
Assignee
Justin Obara
Reporter
Cindy Li
Created
2011-07-12T17:09:56.528-0400
Updated
2013-04-11T17:25:29.889-0400
Versions
  1. 1.4
Fixed Versions
  1. 1.5
Component
  1. Framework
  2. IoC System

Description

options: {
events: {
onUIOptionsComponentReady: {
event: "{uiOptionsLoader}.events.onUIOptionsComponentReady",
args: ["{UIOptionsLoader}", "{eventBinder}"]
}
},
listeners: {
onUIOptionsComponentReady: "fluid.uiOptionsEventBinder.bindModelChanged"
}
}

Sequence is:
1) Framework discovers boiled event, calls out to "resolveEvent" - this creates a zero-arg event which is the ACTUAL listener function
2) When the event fires, the listener resolution code which is jammed into fireToListeners observes a harmless function handle and dispatches to it,
3) The inside of "dispatchEvent" does not contain the same listener resolution code as in fireToListeners, finds a string handle where it expects a function and then fails

This is a general consequence of the fact that we do not have "boiled listeners", only "boiled events"

Comments