我正试图弄清楚如何使用动态的,客户端驱动的“上下文”来更新挂毯区域。我对挂毯很新,我现在已经坚持5.0了。
执行此操作的主要原因是将另一个tapestry组件重用为jquery对话框的子级,而无需重写tapestry组件。
一个问题是区域和控制它的任何元素最终都在jquery对话框中。 $ jquery(...)。dailog()倾向于将元素的html剪切/粘贴到另一个位置,这可能会破坏某些东西。但是,即使在jquery对话框之外,我也无法工作。
这是我尝试过的,似乎没有用(也许我做错了):
答案 0 :(得分:0)
我找到了一些示例代码,几乎解决了我的问题;它没有工作,但当我在这里输入问题时,我看到了什么是错的。由于其他人可能也遇到过这个问题,我在这里发布一个答案:
var zoneId = "itemZone"; // tml was <t:zone id="itemZone"...>
var zoneObject = Tapestry.findZoneManagerForZone(zoneId);
zoneObject.updateFromURL(url);
要解决jquery .dialog()移动html的问题,我还必须像这样复制和保存区域管理器:(其中$ J(...)是我的jquery的缩写,以避免原型冲突)< / p>
prototypeStorageObj = $T("itemZone");
zoneManager = prototypeStorageObj.zoneManager;
// jquery stuff that kills the prototype data storage.
emailForm = $J("#myDialog");
emailForm.dialog({ autoOpen: false, modal:true });
emailForm.dialog('open');
// restore the zone manager so the zone works again:
$T("itemZone").zoneManager = zoneManager;