我正在尝试在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.顶部循环对象的嵌套循环