0

如何在占位符中添加内容,例如静态内容和动态内容。

例如:

<doublebox maxlength="10"
           mandatory="@load(something.valueRequired)"
           width="250px"
           tooltiptext="Enter Number"
           value="@bind(something.infoNumericValue)"
           placeholder="@load(something.infoData);">
</doublebox>

所以,请告诉我如何添加

enter with dynamic content(@load(something.infoData))

它在placeholder中显示为“输入你的东西” 。

4

4 回答 4

1

您可以为此使用 EL 表达式:-

 placeholder="Enter ${something.infoData}"

您在 EL 表达式中编写的任何内容都需要预先加载到 zul 中。所以请确保您的内容已经加载

于 2013-07-26T11:43:51.170 回答
1

在ZK MVVM EL 文档中发现了这个宝石。

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
...
<doublebox placeholder="@load(c:cat('enter your ',something.infoData))"/>

首先我们加载核心 ZK 标签库,然后我们可以使用该cat函数将静态文本与动态加载的文本连接起来。

于 2013-08-03T00:51:04.297 回答
0

EL (${}) 和MVVM ( @) 表达式不能与文本文字混合。因此,即使以下内容也不起作用:

<label value="Literal ${expression}"/>

<label value="Literal @load(data)"/>

由于整件事不是一个表达式,ZK 没有把它解释为一个表达式,它只是文本。注意我在这里使用标签来说明这一点,但这适用于您使用这些表达式的任何地方,包括占位符。

我的建议是将其移回您的视图模型:

<doublebox placeholder="@load(vm.placeholder)"/>

...

public MyViewModel {

    private Something something;

    public String getPlaceholder() {
        return "Enter a " + something.getInfoData();
    }

}
于 2013-07-26T20:40:57.643 回答
0

khcyt 的个人资料给出的答案

<zk> <zscript>

    class A
    {
        public A(String s, Long v, Boolean is_group)                    { s_= s; v_= v; is_group_= is_group; }

        public String getLabel()        { return s_; }
        public void setLabel(String s)  { s_=s; }
        public Boolean isGroup()        { return is_group_; }
        public Long getValue()          { return v_; }
        public String getPlaceholder()  { return "Please type some text"; }

        String s_= null;
        Long v_= null;
        Boolean is_group_= null;
    }

    lm.add(new A("Today", 1L, Boolean.TRUE));
    lm.add(new A("RE: Bandbox Autocomplete Problem", 2L, Boolean.FALSE));
    lm.add(new A("", 3L, Boolean.FALSE));
    lm.add(new A("RE: FileUpload", 4L, Boolean.FALSE));
    lm.add(new A("", 5L, Boolean.FALSE));

    lm.add(new A("Yesterday", 10L, Boolean.TRUE));
    lm.add(new A("", 11L, Boolean.FALSE));
    lm.add(new A("RE: SelectedItemConverter Question' ite", 12L, Boolean.FALSE));

    lm.add(new A("Last week", 100L, Boolean.TRUE));
    lm.add(new A("RE: Times_Series Chart help", 101L, Boolean.FALSE));
    lm.add(new A("", 102L, Boolean.FALSE));

    class VM
    {
        public ListModel getListModel()     { return lm; } 
    }
]]></zscript>

<window id="win" title="Window ZK6 dynamic template" border="normal" width="600px" 
        apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('VM')" >                 
    <listbox model="@bind(vm.listModel) @template(each.isGroup() ? 'group_model' : 'item_model')">
        <listhead>
            <listheader hflex="3" label="Column 1"/>
            <listheader hflex="1" label="Column 2"/>
        </listhead>
        <template name="group_model">
            <listgroup open="true" label="@load(each.label)"/>
        </template>
        <template name="item_model">
            <listitem vflex="1">
                <listcell>
                    <textbox hflex="1" placeholder="@init(each.placeholder)" value="@bind(each.label)"/>
                </listcell>
                <listcell>
                    <label value="@load(each.value)"/>
                </listcell>
            </listitem>
        </template>
    </listbox>
</window>

</zk>
于 2013-07-30T08:17:13.483 回答