小工具/模板和ClientBundleare的哪些组合是允许的,使用它们时是否有任何已知的限制/事项需要考虑。
Afaik类似于:
@Template(""{0}\"<p>not allowed</p>")
SafeHtml iconONLY(Widget w);是不允许的,因为它会抛出错误。
就像这样
@Template("{0}<p>not allowed</p>")
SafeHtml iconONLY(Element e);将它与iconONLY(w.getElement());之类的东西一起使用是可能的,但小部件会失去所有功能,因为它的附加方法没有正确执行。
总而言之,我假设模板并不打算在其中放置小部件!
ClientBundle用于保存内容小部件。在其他元素中使用它们,例如:
@Template("{0}<p>not allowed</p>")
SafeHtml iconONLY(SafeUrl safeurl);使用iconONLYimageResource.getSafeUrl);调用可能会导致问题...
我的假设是正确的吗?请告诉我你是否尝试过/使用过其中一种组合,以及它是如何工作的?
发布于 2012-04-26 23:44:23
第一种和第二种方法不起作用,因为您只是尝试将元素或小部件插入到字符串中(SafeHtml最终只是一个字符串)-当然,事件连接不会起作用。Widget不能像那样被克隆,除了组成它们的元素之外,还有更多的东西。
最后一个是错误的,因为您将Uri放入文本内容中-您的意思可能类似于
@Template("<img src=\"{0}\" /><p>not allowed</p>")
SafeHtml iconONLY(SafeUri safeurl);要显示图像,请执行以下操作。
你想做什么?如果尝试显示图像,将SafeUri放在img标记中是一种选择,另一种选择是将SafeHtml实例放在一起插入:
@Template("{0}<p>not allowed<p>")
SafeHtml iconONLY(SafeHtml icon);
//...
AbstractImagePrototype proto = AbstractImagePrototype.create(icon);
SafeHtml iconHtml = SafeHtmlUtils.fromTrustedString(proto.getHTML());
template.iconONLY(iconHtml);SafeHtml的基本思想是构建html字符串而不是dom元素-这允许重用这些字符串,或者一次性注入所有这些字符串(这通常比将元素附加到dom更快)-这不是小部件相互添加的方式,正如您已经注意到的,尝试这样操作小部件只会以丢失的片段告终。
https://stackoverflow.com/questions/10329833
复制相似问题