mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-02-08 23:20:03 +00:00
![Jermolene](/assets/img/avatar_default.png)
Previously, widgets were reading variables from themselves or their cascaded ancestors. That means that if a widget sets a variable and then reads the same variable, it will get the same variable back. That sounds reasonable, until you consider a widget that wants to modify a variable - eg the tiddler macro. For example: ``` <$tiddler tiddler={{!!report}}> <$transclude mode="block" /> </$tiddler> ``` Here we first evaluate the `{{!!report}}` reference, which involves reading the currentTiddler variable, looking up the tiddler, and retrieving it’s `report` field. The next the tiddler widget is refreshed, it will use the newly set currentTiddler as the basis for resolving the `{{!!reference}}` reference. The fix is to get variables from ancestors, but continue to set them on ourselves.