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



我正在尝试在JsRender中实现这一点。从下面的代码中可以看出,SubMenuItems 和 SubMenuPages 是对象数组中的子对象。但是,我想分别比较第一个对象中的值和第二个对象中的值。我只限定了 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

如果不更清楚地了解数据层次结构,就很难回答您的问题,但基本上这里的文档 查看层次结构 - 特别是此处 访问父数据应该告诉您需要了解的内容。

如果我对您的数据结构的猜测是正确的,那么这里有一种方法可以编写模板:

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

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

从 JsRender 中的嵌套块访问父变量

JsRender.顶部循环对象的嵌套循环

最新更新