我有一个HTML块,我想用它作为GWT小部件的基础,但我不太确定最好的方法.举个例子,我的HTML块看起来像这样:
<div class="my-widget">
<div class="header">
<span class="title">Title Text</span>
</div>
<div class="body">
<span class="content">Content Text</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,我当然可以将其作为静态字符串粘贴到HTML小部件中,但在这种情况下,我需要能够动态设置"标题"和"内容"元素的文本.这会使静态文本选项丧失(或至少使其变得非常困难).
在这种情况下首先要想到的是手动构建GWT中的元素并保存对我需要更改的元素的引用,如下所示:
DivElement container = document.createDivElement();
setStyleName(container, "my-widget");
setElement(container);
DivElement header = document.createDivElement();
setStyleName(header, "header");
container.appendChild(header);
// Hold onto this element for later manipulation
DivElement title = document.createDivElement();
setStyleName(title, "title");
header.appendChild(title);
Run Code Online (Sandbox Code Playgroud)
但是除了最简单的布局之外,这很快就会变得无法管理(我的不是.)
我想要的是能够以静态文本形式发送HTML,然后执行某种选择器(如jQuery)来查询我想要操作的元素.我知道GWT-Query但是我无法让它在没有错误的情况下运行,而且在我的生命中看起来有点太早,以至于我很乐意将它集成到专业产品中.
我也知道Google的UiBinder,听起来和我想要的完全一样.据我所知,问题在于功能仅在GWT 2.0中可用,GWT 2.0仍处于候选发布状态,因此无法使用.
所以,考虑到所有这些(抱歉这个长期的问题!)你对如何最好地实现这样的事情有任何建议吗?