An issue mentioned by Justin in the channel yesterday:


[20:23] <Justin_o> Bosmon8: I'm trying out the code changes now for merging gradeNames.. although now if i add the gradeName, my applier seems to disappear.. getting an error that it is undefined


I haven't seen the exact code in question, but my guess is that this might be caused by injecting an overly-broad reference via IoC into an invoker or other material that participates in an early ginger process.

For example, writing

args: "{that}"

and then in

myInvoker = function (that) {
    var applier = that.applier;

runs the risk of observing the applier before it is instantiated.

A better model is to write

args: "{that}.applier"

and then

myInvoker = function (applier)


This was always a good design practice (for good logical design) but is now a good physical practice in that it heads off bugs due to observing overly-broad references and also reduces the risk of cycles of references. We used to work hard to avoid visibility of an entire "that" in methods attached to components because it decreases the brittleness of design and improves the ability to reason about the behaviour of methods - with the FLUID-4330 "ginger world" we now have even stronger reasons to inject into methods only those exact references they require - and to design them so that the pattern of required references is as small and tight as possible.

Apologies if this isn't the cause of this particular problem, but I thought it was worth writing up in any case -

Cheers,

A
_______________________________________________________
fluid-work mailing list - [email protected]
To unsubscribe, change settings or access archives,
see http://lists.idrc.ocad.ca/mailman/listinfo/fluid-work

Reply via email to