JsRender If 条件比较子对象之间的变量

JsRender If conditions comparing variables between child objects

我正试图在 JsRender 中实现这一点。 从下面的代码可以看出,SubMenuItems 和 SubMenuPages 是 objects.However 数组中的子对象,我想比较第一个对象中的值与第二个 respectively.I 中的值只符合条件if 条件只是为了清楚我要完成的事情。

所以基本上我想访问一个子对象中的 id 变量,然后检查另一个对象中的另一个变量。 我有点不确定关于这个的语法,因为我尝试的所有内容都没有返回。

    {{for SubMenuItems}}
             <li><a href="#">{{>Name}}</a></li> 
             <ul>
                    {{for SubMenuPages}}

                            {{if SubMenuItems.PageMenuId == SubMenuPages.Id }}

                            <li><a href="{{>PageUrl}}" >{{PageName}}</a></li> 


                            {{/if}}


                    {{/for}}
{{/for}}
    </ul>

SubMenuItems 也是一个 数组 ,每个项目都有一个 PageMenuId - 或者是你似乎说的是一个单一的对象? (类似地,SubMenuPages 是一个 数组 ,每个项目都有一个 Id?)

如果不更清楚地了解您的数据层次结构,很难回答您的问题,但基本上这里的文档 View Hierarchy - and in particular here Accessing parent data 应该告诉您您需要了解的内容。

如果我对您的数据结构的猜测是正确的,那么您可以通过以下一种方式编写模板:

...
{{for SubMenuItems itemVar="~SubMenuItem" ~Pages=SubMenuPages}}
  ...
  {{for ~Pages itemVar="~SubMenuPage"}}
    ...
    {{if ~SubMenuItem.PageMenuId == ~SubMenuPage.Id }}
        ...
    {{/if}}
    ...
  {{/for}}
  ...
{{/for}}
...

您还可以查看这些与您的类似的堆栈溢出问题: