Вставить строку шаблона сетки (в сетке) при условии - PullRequest
0 голосов
/ 03 мая 2019

В фейсбуке-эске я работаю в посте с комментариями.Комментарии имеют int, который указывает идентификатор родительского поста.Таким образом, комментарии 1 и 2 присваиваются в качестве родительского сообщения 1. Я работаю над отображением их в виде сетки в сетке.Вот эта часть в .zul:

<grid id="postGrid" height="550px" model="@load(vm.pcdata.posts)" emptyMessage="No Posts.">
    <template name="model">
        <row>
            <window border="normal">

                <!-- .................. -->
                <!-- PARENT POST -->
                <!-- .................. -->

                <caption id="userPost" label="@load(each.user)"/>
                <textbox id="infoPost" readonly="true" value="@load(each.info)" multiline="true" rows="4" width="100%" mold="rounded"/>
                <separator bar="true"/> 

                <hlayout>

                    <div>
                        <button label="Like" onClick="@command('addPLike', postid=each.postid)"/>
                    </div>

                    <div hflex="true">
                        <textbox id="likeTB" disabled="true" width="40px" style="text-align:center" value="@load(each.plikes)"/>
                    </div>

                </hlayout>

                <separator bar="false"/>

                <window border="normal">

                    <!-- .................. -->
                    <!-- THE SECOND GRID-->
                    <!-- .................. -->

                    <grid id="commentGrid" height="150px" model="@load(vm.pcdata.comments)" emptyMessage="No Comments.">

                        <template name="model">

                                <row>

                                    <window border="normal">

                                        <caption id="userComment" label="@load(each.user)"/>
                                        <textbox id="infoComment" readonly="true" value="@load(each.info)" multiline="true" rows="4" width="100%" mold="rounded"/>
                                        <separator bar="true"/> 
                                        <hlayout>

                                            <div>
                                                <button label="Like" onClick="@command('addCLike', commentid=each.commentid)"/>
                                            </div>

                                            <div hflex="true">
                                                <textbox id="likeTB" disabled="true" width="40px" style="text-align:center" value="@load(each.clikes)"/>
                                            </div>

                                        </hlayout></window></row></template></grid></window></window></row></template></grid>

Во второй сетке, я полагаю, могла бы быть какая-то функция if, в которой были бы и postid в папке Post, и postsrc в дочернем комментарии.то же самое, комментарий будет отображаться.Есть ли способ заставить эту работу?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Вы имеете в виду commentGrid, но внутреннее окно скрыто, поэтому внутри commentGrid есть пространство, верно?

Так как вы указываете emptyMessage на commentGrid, должно отображаться no comments.Или есть еще комментарии, но все скрыто?Если это так, вы можете скрыть оба commentGrid с внутренним окном.

0 голосов
/ 03 мая 2019

Вы можете использовать теневой элемент <if>, например,

<if test="@load(vm.yourFlag)">
    <grid id="commentGrid">
    ....
</if>

см. http://books.zkoss.org/zk-mvvm-book/8.0/shadow_elements/flow_control.html

...