首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法来检测同一路径内的变化?

是否有一种方法来检测同一路径内的变化?
EN

Stack Overflow用户
提问于 2015-07-02 05:09:34
回答 1查看 43关注 0票数 0

使用“铁路由器”,我设置了以下路线:

代码语言:javascript
运行
复制
Router.route('/:cat', {
    name: "goods",
    waitOn: function() {
        Session.setDefault('limit', 20)
        var limit = Session.get('limit') || 20
        Meteor.subscribe('goods', this.params.cat, limit)
    }
})

这样做的想法是,用户可以按一串按钮来更改cat(例如),过滤掉一些数据,但保持在相同的路径上。经典的东西。

现在,它只设置默认的limit为20,并且当用户向下滚动时,它会增加。如果他单击一个按钮来更改类别,那么立即加载100个新项目是没有意义的,但是将limit设置为20。

问题是,我真的想不出一个好办法。删除setDefault以使用Session.set是行不通的。我现在所能想到的就是将cat记录在Session中,并使用它来检查类别是否已被更改,但我希望有更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-02 23:12:03

如何使用模板来管理状态(而不是会话和路由)。

例如,使用一个reactivate变量(reactive包),并将类别通过到模板的路由传递。这种方式--类别可以链接到(并根据需要扩展/限制限制)。

首先实例化模板

代码语言:javascript
运行
复制
Template.limitedDatasource.created = function() {
  this.data.limitVar = new ReactiveVar(20);
  this.data.dsSub = Meteor.subscribe('goods', this.data.category, this.data.limitVar.get())
}

添加一些模板级帮助程序来管理订阅就绪性和数据

代码语言:javascript
运行
复制
Template.limitedDatasource.helpers({
    dataSourceReady: function() {
        return this.dsSub.ready();
    },
    dataSource: function() {
        return CollectioName.find({cat: this.category}, {limit: this.limitVar.get()});
    }
});

添加一些事件处理程序来加载更多的东西(可能会改变限制?)

代码语言:javascript
运行
复制
Template.limitedDatasource.events({
    'click .showMore': function(event, template) {
        event.preventDefault();
        var newLimit = template.data.limitVar.get() + 20;
        template.data.limitVar.set(newLimit);
    },

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31176007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档