流星出版领域问题

时间:2015-04-01 16:50:16

标签: javascript meteor publish

我的申请是发布' memberPrice'字段,当它不应该。在我的publish.js文件中,我指定memberPrice不被发布。这是我的server / publish.js:

Meteor.publish('cars', function() {
return Products.find({category: 'vehicle'}, {limit: 10}, {fields: {memberPrice: 0}});
});

我的控制器:

carsController = RouteController.extend({
waitOn: function () { 

    var sessionId = Session.get('sessionId');
    console.log("Session: ", sessionId);
    Meteor.subscribe('cars');
    Meteor.subscribe('cartItems', sessionId);

},
action: function() {
    this.render('Cars');
}

});

这是我的桌子使用的是aldeed:tabular包:

TabularTables = {};

Meteor.isClient && Template.registerHelper('TabularTables', TabularTables);

TabularTables.Cars = new Tabular.Table({
name: "Cars",
collection: Products,
columns: [
{data: "productCode", title: "Product Code"},
{data: "brand", title: "Brand"},
{data: "productLineName", title: "Product Name"},
{data: "description", title: "Description"},
{data: "memberPrice", title: "Member Price"}

 ]
});

有谁知道发生了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

您将三个参数传递给Products.find,但它只需要两个参数。 {limit: 10}, {fields: {memberPrice: 0}}应为{limit: 10, fields: {memberPrice: 0}}

答案 1 :(得分:1)

在过去,我的发布方式与您所拥有的一样,但是我从David Weldon页面阅读了这篇文章。

我将发布更改为此类内容。

Meteor.publish('cars', function() {
  var selector = {category: 'vehicle'};
  var options = {limit: 10,fields: {memberPrice: false}};
  return Products.find(selector,options);
});

根据你的发布功能,应该在这里排除memberPrice选项,试试这个,这里我们遵循Collection.find的正确语法collection.find([selector], [options]),你有类似{{1}的东西}}