Templates GWT:小部件/模板和ClientBundle PGEWITION/WEB模板和CeleNeLeb的组合是允许的,并且在使用它们时有任何已知的限制/事项。

Templates GWT:小部件/模板和ClientBundle PGEWITION/WEB模板和CeleNeLeb的组合是允许的,并且在使用它们时有任何已知的限制/事项。,templates,gwt,widget,clientbundle,Templates,Gwt,Widget,Clientbundle,比如说: @Template(""{0}\"<p>not allowed</p>") SafeHtml iconONLY(Widget w); 使用iconlyImageResource.getSafeUrl)调用可能导致问题 我的假设正确吗?请告诉我您是否尝试/使用了其中一种组合,以及它是如何工作的?第一种和第二种组合很有意义,它们不起作用,因为您正试图将元素或小部件插入字符串中(SafeHtml在一天结束时只是一个字符串)-当然,事件连接不会起作用。小部件不能像那样

比如说:

@Template(""{0}\"<p>not allowed</p>")
SafeHtml iconONLY(Widget w);
使用
iconlyImageResource.getSafeUrl)调用可能导致问题


我的假设正确吗?请告诉我您是否尝试/使用了其中一种组合,以及它是如何工作的?

第一种和第二种组合很有意义,它们不起作用,因为您正试图将元素或小部件插入字符串中(SafeHtml在一天结束时只是一个字符串)-当然,事件连接不会起作用。小部件不能像那样被克隆,它们的内容比组成它们的元素还要多

最后一个是错误,因为您正在将Uri放入文本内容中-您可能是指

@Template("{0}<p>not allowed</p>")
SafeHtml iconONLY(Element e);
@Template("<img src=\"{0}\" /><p>not allowed</p>")
SafeHtml iconONLY(SafeUri safeurl);
SafeHtml的基本思想是构建html字符串而不是dom元素-这允许重用这些字符串,或者一次注入所有字符串(通常比向dom中添加元素更快)-这不是小部件相互添加的方式,正如您所注意到的那样,试图操纵这样的小部件只会导致丢失的部分

@Template("<img src=\"{0}\" /><p>not allowed</p>")
SafeHtml iconONLY(SafeUri safeurl);
@Template("{0}<p>not allowed<p>")
SafeHtml iconONLY(SafeHtml icon);

//...
AbstractImagePrototype proto = AbstractImagePrototype.create(icon);
SafeHtml iconHtml = SafeHtmlUtils.fromTrustedString(proto.getHTML());
template.iconONLY(iconHtml);