为什么我无法将数据传递到铁路由器路由模板?

时间:2014-11-01 22:44:16

标签: javascript meteor iron-router spacebars

我刚刚更新到Meteor 1.0和最新版本的Iron-Router。

无论出于何种原因,当我将数据传递给仅包含单个文档的模板时,它就可以工作。但是当我尝试将多个文档传递给模板时,我得到一个空白屏幕。

//galleryRoute.js

Router.route('/:section', function() {
    this.layout('Gallery', {
        data: function() { 
            var data =  { photos: photos.find({ path: { $regex: '/'+this.params.section +'/' } }) };
            return data;
        }
    });
});

<template name="Gallery">
    <div class="container">
        {{#each photos}}    
            <div class="section-photo" style="background:url({{path}}) no-repeat center center; width:175px; height:175px; background-size:cover;"></div>
        {{/each}}
    </div>
</template>

想知道是否有人对此为何有任何想法?

1 个答案:

答案 0 :(得分:-1)

在您的数据功能中,您正在访问this.params.section。但是,this是指您当前的范围,而不是路径,因此this.params将是未定义的。尝试做这样的事情:

//galleryRoute.js

Router.route('/:section', function() {
    var route = this;
    this.layout('Gallery', {
        data: function() { 
            var data =  { photos: photos.find({ path: { $regex: '/'+route.params.section +'/' } }) };
            return data;
        }
    });
});