版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/83624003
定义一套定制属性.定制属性为与一个特定范围相关联的对象.可接受的范围包括组件,空间,页面,桌面,会话和应用.
如下所述,custom-attributes 属性可以方便的指派定制属性而无需编程.通俗点说就是在页面保存一个对象,无需进行编程,后台直接获取.
<window>
<custom-attributes main.rich="simple" very-simple="intuitive">
</window>
等价于
<window>
<zscript>
self.setAttribute("main.rich", "simple");
self.setAttribute("very-simple", "intuitive");
</zscript>
</window>
你也可以指定定制属性的范围。 在实际项目中使用
<z:template name="model">
<z:listitem onClick="@command('onClickProductSeries',this=self)" onCreate="@command('initProductSeries',this=self)">
<z:custom-attributes productSeries="${each}"/>
<z:listcell label="${w:familyLabel0(each)}">
</z:listcell>
</z:listitem>
</z:template>
productSeries就是key,后台通过用户onClick事件来获取到这个key,就能得到这个${each}对象,后台获取的代码如下
@Command("initProductSeries")
public void initProductSeries(@BindingParam("this") Component component) {
DefaultProductFamily defaultProductFamily = (DefaultProductFamily) component.getAttribute("productSeries");
}
[提示]:不要混淆<attribute>与<custom-attributes> 。他们毫不相干。 attribute 元素是定义闭合元素属性的一种方式,而custom-attributes 被 用于为一个特定范围指派定制属性。
属性名称 | 描述 |
scope | [可选][默认:component] 指定定制属性关联的范围. |
if | [可选][默认:none] 指定为这个元素赋值的条件。 |
unless | [可选][默认:none] 指定不为这个元素赋值的条件 |