Sencha GXT XTemplate tpl for inside tpl for

时间:2012-11-08 17:30:15

标签: java templates for-loop extjs gxt

我正在尝试使用GXT 3.0的XTemplates(类似于EXT),这里有2个简单的java对象,它们具有以下关系:

class A {
   String name;
   public String getName() {
       return name;
   }
}

class B {
   String name;

   public String getValue(A a) {
       return a.getName();
   }
}

我想为以下模板应用带有2个参数的XTemplate(List<< A>> aList,List<<>> bList):

<tpl for="aList">
    <tpl for="bList">
         ////// Questions? How to call function B.getValue(A) ???
         /////  this does not work for me:  {this.getValue(parent)}
    </tpl>
</tpl>

有没有人熟悉这种要求? 感谢。

1 个答案:

答案 0 :(得分:2)

有一个特殊的命名对象可以帮助您处理这个名为parent的对象 - 这会访问外部范围。

<tpl for="aList">
    <tpl for="bList">
         Name of inner item, i.e. b.getName() is {name} <br />
         Name of outer item, i.e. a.getName() is {parent.name}
    </tpl>
</tpl>

如果有第三个循环,您可以将调用链接到父级以进一步 - parent.parent.name

如果A有一个getPhone()方法,但B没有,那么parent是可选的,因为显然你不能指代不存在的{{ 1}}。

同样的原则在this example中使用,其中每个孩子都打印了他们的详细信息以及父母的详细信息。请查看b.getPhone()文件的来源,了解在这种情况下如何使用template.html