#9897 closed defect (fixed)
Parser doesn't recognize parameters added after first widget instantiated
Reported by: | bill | Owned by: | bill |
---|---|---|---|
Priority: | high | Milestone: | 1.4 |
Component: | Parser | Version: | 1.3.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description (last modified by )
This is an edge case, but this doesn't work:
- the parser parses a page with a ContentPane, thus caching the list of possible parameters for ContentPane:
... <div dojoType=dijit.layout.ContentPane> ...
- after the parse, there's a dojo.require("dijit.layout.BorderContainer"), or TabContainer, etc, some class that adds new parameters to _Widget:
dojo.extend(dijit._Widget, { // region: [const] String // "top", "bottom", "leading", "trailing", "left", "right", "center". // See the BorderContainer description for details on this parameter. region: '', ... });
- parser is called again, to parse another ContentPane (inside a BorderContainer) that passes the new parameters like region:
<div dojoType=dijit.layout.ContentPane region=top>
The parser won't pick up the region parameter and thus the BorderContainer won't layout correctly.
I think this actually might be a common case for dojox.layout.ContentPane, when the href-loaded content does dojo.require() calls.
I'll check in a test case along with the fix.
Change History (3)
comment:1 Changed 11 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 Changed 11 years ago by
Note: See
TracTickets for help on using
tickets.
(In [20112]) Widgets like BorderContainer? add properties to _Widget via dojo.extend(). If BorderContainer? is loaded after _Widget's parameter list has been cached, we need to refresh that cache (for _Widget and all widgets that extend _Widget).
Fixes #9897 !strict.