0

这些都是我传递给车把模板的对象。

self.template = template({ data: self.model, lang:self.lang, page:self.mainPage, subpage:self.param }); 

然后在 foreach 循环中,我有一个 if 语句,我无法访问父上下文元素。我在模板中的代码和问题如下所示:

    {{#each data}}  
        <h1>{{../subpage}}</h1> --> This is giving me a subpage value
        {{#if this.brand}} 

                  {{#if ../subpage}}
                    <h1>WHY IS THIS NOT SHOWING?</h1> --> This is what i am trying to achieve
                  {{/if}}

        {{/if}}  
    {{/each}}

任何想法如何实现这一目标?非常感谢您的所有回答/评论!

4

1 回答 1

0

{{#if this.brand}}进入另一个级别的上下文,因此您必须逃到父上下文不是一次,而是两次。

因此,您的模板应该是:

{{#each data}}  
    <h1>{{../subpage}}</h1>
    {{#if this.brand}} 

        {{#if ../../subpage}}
            <h1>This shows now!</h1>
        {{/if}}

    {{/if}}  
{{/each}}

这应该使用self.model类似于以下的值:

[
    {
        brand: "Brand A",
        otherFields: "here"
    }
]

这是一个演示解决方案的 jsFiddle:nested if statement context escaping

我希望这会有所帮助!

于 2013-06-15T02:32:19.670 回答