Meteor JS Iron Router订阅数据

时间:2014-06-10 15:38:39

标签: meteor

我正在使用Meteor 0.8和铁路由器。

我有一条路线用于订阅多个馆藏。我想要做的是当你到达路线时创建一个文件然后订阅它以便我可以访问它。

这是我的路线:

    this.route('product_collection', {
    path: '/collection/:collection',
    template: 'product_collection',
    layoutTemplate: 'layout-new',
    waitOn: function() { return [ Meteor.subscribe('specific_product_collection', this.params.collection), Meteor.subscribe('product_types')] },
    data: function () { return ProductCollections.findOne({ url: this.params.collection }) },
    onBeforeAction: function(pause){
        //Prevent double rendering
        if (this.ready()) {


            var productType = ProductTypes.findOne({url: this.params.collection })
            console.log(productType)
            if(productType){
                var product = {
                    productType: productType._id
                };
                Session.set("productTypeId", productType._id);

                Products.insert(product, function(error, id) {
                    if (error) {
                        console.error(error);
                        set_notification('Oops, something went wrong.', 'Please try again later.');
                    } else {

                        Session.set("productId", id);
                        Session.set("productName", productType.name );
                        //Not working
                        Meteor.subscribe('specific-product', id);
                        console.log('should be subscribed') 

                    }
                });
            }
        } else {
            console.log('loading')
            this.render('loading');
            pause();
         }
    },
});

1 个答案:

答案 0 :(得分:0)

确定, 我发现服务器与客户端位置的ID不同。所以最终在服务器上编写了一个流星方法调用。

参见参考:Retrieve _id after insert in a Meteor.method call