Meteorjs:我如何使用模板助手中模板事件中定义的变量?

时间:2015-06-05 10:45:19

标签: javascript mongodb meteor

这是我的活动代码:

    Template.pricing_report.events({
        'click #btn_report_filter': function(){

        from_date = $("#datepicker1").val();
        to_date = $("#datepicker2").val();


        date_n = new Date(from_date);
        from_iso = date_n.toISOString();

        date_o = new Date(to_date);
        to_iso = date_o.toISOString();
    }

});

我想在我的助手中使用变量from_isoto_iso,如下所示:

Template.pricing_report.helpers({

    'preportdata':function(){
        return price.find();
},

    'preportdata_test':function(){
        return price.find({
            date: {
                $gte: from_iso,
                $lt:  to_iso
            }
        });
}

正如您所看到的,我在查找函数中使用了from_isoto_iso,但我无法获取辅助函数的值。

我还尝试在我的帮助函数中使用console.log(from_iso),但它也没有显示任何内容。

那么,我该如何使用这些变量?

2 个答案:

答案 0 :(得分:2)

您应该阅读有关ReactiveVar:http://docs.meteor.com/#/full/reactivevar_pkg

的信息

快速举例:

SELECT * 
FROM dcenter 
JOIN dcds on dcds.d_id = dcenter.d_id 
JOIN service on service.s_id = dcds.d_id

答案 1 :(得分:1)

您可以使用 Session 变量来存储Template实例变量。它在客户端上提供了一个全局对象,可用于存储任意一组键值对。用它来存储列表中当前所选项目之类的内容。在你的情况下,你可以尝试这样的模板(未经测试):

Template.pricing_report.events({
    'click #btn_report_filter': function() {
        var from_date = $("#datepicker1").val(),
            to_date = $("#datepicker2").val(),    
            from = new Date(from_date),    
            to = new Date(to_date);

        Session.set("to_date", to);
        Session.set("from_date", from);
    }
});

Template.pricing_report.helpers({

    'preportdata': function(){
        return price.find();
    },

    'preportdata_test': function() {
        return price.find({
            date: { 
                $gte: Session.get('to_date'),
                $lt:  Session.get('from_date')
            }
        });
    }
});