2015-04-01 83 views
0

我的應用程序發佈'memberPrice'字段時,它不應該。在我的publish.js文件中,我指定了memberPrice不發佈。這裏是我的服務器/ 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我的表:表格包:

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"} 

] 
}); 

有誰知道這是怎麼回事?

謝謝!

+0

'cartItems publish'什麼是返回?另一個集合?或'產品收集'光標呢? – Ethaan 2015-04-01 16:56:51

回答

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])和你有類似collection.find([selector],[selector],[options])

+0

哈哈,其實是「威爾登」。也許你應該增加對那篇文章重要的小精度。 – 2015-04-01 17:07:42

+0

@Kyll哈哈我想我會刪除這個,因爲我沒有看到Peep的答案是一樣的,我只是在這裏改變發佈語法。 – Ethaan 2015-04-01 17:10:51

+0

該死的我不知道你是如何得到這個接受的,Peppe L-G的答案更有意義!編輯 - 哦,等等,現在我已經閱讀你的編輯。那裏打電話好。 – 2015-04-01 18:12:39

2

您正在向Products.find傳遞三個參數,但它只需要兩個參數。 {limit: 10}, {fields: {memberPrice: 0}}應該是{limit: 10, fields: {memberPrice: 0}}