【问题标题】:Parameter isn't passed into nested template参数未传递到嵌套模板
【发布时间】:2015-09-16 21:21:14
【问题描述】:

我正在为在线商店制作类别侧边栏模板。我将在 2 个地方使用它 - 在客户和管理员方面。每个人都有自己的点击类别服务。我想传递参数“redirect”,它将决定将执行什么操作,但问题是,该参数在嵌套模板中不可见 - 仅在第一级类别中。

HTML:

<template name="categoriesSidebar">
    <ul>
        {{#each mainCategories}}
            <li>
                {{> categoriesSidebarItem redirect=true data=this }}
            </li>
        {{/each}}
    </ul>
</template>

<template name="categoriesSidebarItem">
    <a href="#">
        {{data.name}}
    </a>
    {{#if data.subCategories.length}}
        <ul>
            {{#each subCats }}
                <li>
                    {{> categoriesSidebarItem redirect=redirect data=this }}
                </li>
             {{/each}}
        </ul>
    {{/if}}
</template>

Javascript:

Template.categoriesSidebar.helpers({
    mainCategories:  function() {
    return Categories.find({'categoryLevel' : 1});
  }
});

Template.categoriesSidebarItem.helpers({
    subCats : function(){
        return Categories.find({_id:{$in: this.data.subCategories}});
    }
});

Template.categoriesSidebarItem.events({
    'click a' : function(event){
        if(this.redirect == true){
            Router.go('category',{_id : this.data._id});
            return false;
        }else{
            //categoryId is ReactiveVar used in another template
            categoryId.set(this.category._id);
        }
    }
})

结果:

Women
    Nike
Men
    Nike
    Adidas

Women 和 Men 类别运行良好,点击后,“redirect”被视为 true,Router 重定向到所需路由,但对于嵌套类别,“redirect”参数未定义。

如何将该参数传递给嵌套模板?

【问题讨论】:

    标签: meteor handlebars.js


    【解决方案1】:

    把代码改成这样:

    {{#if data.subCategories.length}}
        <ul>
            {{#each subCats }}
                <li>
                    {{> categoriesSidebarItem redirect=../redirect data=this }}
                </li>
             {{/each}}
        </ul>
    {{/if}}
    

    每个块都会更改数据上下文,因此您需要从父数据上下文中检索重定向。这就是../ 所做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 2015-09-22
      • 1970-01-01
      • 2021-11-24
      相关资源
      最近更新 更多