在运行时动态增加 SafeHtmlTemplates 变量值
Dynamically increment SafeHtmlTemplates variable value during runtime
是否可以在 运行 时间内增加(或总体上更改)界面的附加值?比如用integer作为变量,是否可以在添加后自增变量?
假设我有 SafeHtmlTemplates 接口:
public interface MyTemplate extends SafeHtmlTemplates {
@Template("<div id=\"{0}\"></div>")
SafeHtml temp(Integer id);
}
如果我要使用它:
MyTemplate tpls = GWT.create(MyTemplate.class);
for (int i = 0; i < 2; i++) {
tpls.temp(i);
}
我会得到:
<div id="0"></div>
<div id="1"></div>
不过我想得到:
<div id="1"></div>
<div id="2"></div>
通过在以某种方式添加 {0} 之后递增它(类似于 {0} + {offsetVariable}
,到目前为止我认为这是不可能的(或者我只是无法弄清楚如何做到这一点)。
有什么想法吗?
您可以像这样使用助手 class:
public class MyTemplateHelper implements MyTemplate {
private MyTemplate tpls = GWT.create(MyTemplate.class);
@Override
public SafeHtml temp(Integer id) {
return tpls.temp(id + 1);
}
}
请注意,MyTemplateHelper
可以实现 MyTemplate
。
比较用法:
MyTemplate tpls;
tpls = GWT.create(MyTemplate.class); // original template class
for(int i = 0; i < 2; i++)
tpls.temp(i);
// you'll get:
// <div id="0"></div>
// <div id="1"></div>
tpls = new MyTemplateHelper(); // helper class
for(int i = 0; i < 2; i++)
tpls.temp(i);
// you'll get:
// <div id="1"></div>
// <div id="2"></div>
是否可以在 运行 时间内增加(或总体上更改)界面的附加值?比如用integer作为变量,是否可以在添加后自增变量?
假设我有 SafeHtmlTemplates 接口:
public interface MyTemplate extends SafeHtmlTemplates {
@Template("<div id=\"{0}\"></div>")
SafeHtml temp(Integer id);
}
如果我要使用它:
MyTemplate tpls = GWT.create(MyTemplate.class);
for (int i = 0; i < 2; i++) {
tpls.temp(i);
}
我会得到:
<div id="0"></div>
<div id="1"></div>
不过我想得到:
<div id="1"></div>
<div id="2"></div>
通过在以某种方式添加 {0} 之后递增它(类似于 {0} + {offsetVariable}
,到目前为止我认为这是不可能的(或者我只是无法弄清楚如何做到这一点)。
有什么想法吗?
您可以像这样使用助手 class:
public class MyTemplateHelper implements MyTemplate {
private MyTemplate tpls = GWT.create(MyTemplate.class);
@Override
public SafeHtml temp(Integer id) {
return tpls.temp(id + 1);
}
}
请注意,MyTemplateHelper
可以实现 MyTemplate
。
比较用法:
MyTemplate tpls;
tpls = GWT.create(MyTemplate.class); // original template class
for(int i = 0; i < 2; i++)
tpls.temp(i);
// you'll get:
// <div id="0"></div>
// <div id="1"></div>
tpls = new MyTemplateHelper(); // helper class
for(int i = 0; i < 2; i++)
tpls.temp(i);
// you'll get:
// <div id="1"></div>
// <div id="2"></div>