Jsrender: 无法访问 {{for}} 中的变量

创建于 2012-06-15  ·  3评论  ·  资料来源: BorisMoore/jsrender

嗨鲍里斯,

我将以下内容传递给模板
{'items':items,排名:true}

items 是一个对象数组

在我的模板中,我有

{{对于物品}}
{{if(排名)}}{{:#index}}{{/if}}
{{/为了}}

但似乎变量 'ranked' 没有做任何事情。

最有用的评论

在 {{for items}} 中,数据上下文(当前数据项)是 items 数组的项。
因此,您正在测试 item.ranked == true 的项目。 但是您的排名属性在具有 items 属性的对象上,而不是在项目上。 也许你想要

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

您可以使用的另一种方法是创建一个模板变量,该变量复制排名属性并使其可通过模板上下文访问嵌套模板:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

数据属性不会在嵌套上下文中自动公开。 (JsRender 中没有with (data) {}块)。 但是模板参数提供了一种更好的方式来选择将变量暴露给嵌套上下文......

所有3条评论

在 {{for items}} 中,数据上下文(当前数据项)是 items 数组的项。
因此,您正在测试 item.ranked == true 的项目。 但是您的排名属性在具有 items 属性的对象上,而不是在项目上。 也许你想要

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

您可以使用的另一种方法是创建一个模板变量,该变量复制排名属性并使其可通过模板上下文访问嵌套模板:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

数据属性不会在嵌套上下文中自动公开。 (JsRender 中没有with (data) {}块)。 但是模板参数提供了一种更好的方式来选择将变量暴露给嵌套上下文......

我有一个 jquery 数据表,我在其中使用 js 渲染显示子行。 对于表中的两列,数据来自 2 个不同的数组。 那么我应该如何将数据分成 2 个单独的行,这些行当前显示为逗号分隔列表

@Krish2215 :这是用于报告错误和其他问题,而不是用于一般帮助问题。 您可以尝试 stackoverflow https://stackoverflow.com/questions/tagged/jsrender。 但是你需要提供更具体的上下文,最好是一个 jsfiddle 来显示你的确切难度......

此页面是否有帮助?
0 / 5 - 0 等级