使用Iron Router和Meteor加载数据

时间:2015-10-02 16:45:31

标签: javascript meteor iron-router

这是我的困境。我目前正在使用静态变量将类别加载到“类别”页面上。加载所有内容并且链接可以点击,但是当用户点击该类别时。 'categoryPage'不会加载属于该类别的相应图像。这是我的代码。

categoryPage HTML:

<template name="categoryPage">
    <div class="text-center light-container" id="home-section">
        <h1>{{categoryName}}</h1>
        <hr/>
        <div class="row">
            {{#each categoryGifs}}
                <a href="{{pathFor 'gif'}}">
                    <img class="freezeframe gifs" data-id="{{_id}}" src="{{image}}"/>
                </a>
            {{/each}}
        </div>
    </div>
</template>

categoryPage JS:

Template.categoryPage.helpers({
    // Load 16 most recent ones
    // When down arrow is click load another 16 more gifs
    'categoryName': function(){
        var category = this.params.category;
        return category;
    },
    'categoryGifs': function() {
        var category = this.params.category;
        console.log(category);
        return GifsCollection.find({category: category}, {fields: {_id: 1, image: 1, category: 1} });
    }
});

路由器JS:

Router.route('/categories', {
    name: 'categories',
    template: 'categories',
    fastRender: true
});
Router.route('/categories/:category', {
    name: 'categoryPage',
    template: 'categoryPage',
    data: function(){
        var category = this.params.category;
        return GifsCollection.find({category: category});
    },
    fastRender: true
});

1 个答案:

答案 0 :(得分:2)

'classGifs'中的

:function(),更改

    var category = this.params.category;

使用:

    var category = Router.current().params.category;

这是工作代码:

http://meteorpad.com/pad/AdRS8mfyHsZjA2Rvp/Leaderboard