對不起,Meteor框架的新手!如何控制兩個訂閱在單個模板中顯示?
我訂閱了兩個發佈函數。即使兩個發佈函數都針對相同的集合,它們都具有不同的功能,我希望在一個模板中顯示。我如何做到這一點。我已經做了大量的研究,但似乎沒有足夠的信息來說明如何實現。
下面是兩個在發佈代碼的功能,我訂閱:
.server/main.js:
Meteor.publish('MerchantTrending', function (categoryMan){
var currentUser = this.userId;
return buyList.find({ who:"Merchant", ownerId:currentUser, itemCategory: { $in: categoryMan } }, {skip: 0, limit: 3});
});
.server/main.js:
Meteor.publish('myTopViews', function(){
var currentUser = this.userId;
return buyList.find({ newArrivalsExpiryDate : {'$lte': new Date()}}, {ownerId:currentUser }, {skip: 0, limit: 3});
});
繼是代碼中的訂閱功能
。客戶端/ main.js:
Router.route('/MerchantLandingPage', {
subscriptions: function(){
var categoryMan = Session.get('category');
return Meteor.subscribe('MerchantTrending', categoryMan, 'merchantTopViews')
}
});
現在在代碼輔助功能:
Template.MerchantLandingPage.helpers({
'top3Trending' : function() {
return buyList.find({}).fetch();
},
'myTopViews' : function() {
return buyList.find({}).fetch();
}
});
而現在的模板代碼:
<template name="MerchantLandingPage">
##### *** Top three trending items *** ########
{{#each top3Trending}}
ItemName:: <b>{{itemName}}</b> <br>
Item Category:: <b>{{itemCategory}}</b> <br>
Discription:: <b>{{descriptions}}</b> <br>
Image:: {{this.photo._id}} <br>
Date Created:: {{createdDate}} <br>
{{/each}}
<br><br>
############ *** My top Views *** #############
{{#each myTopViews}}
ItemName:: <b>{{itemName}}</b> <br>
Item Category:: <b>{{itemCategory}}</b> <br>
Discription:: <b>{{descriptions}}</b> <br>
Image:: {{this.photo._id}} <br>
Date Created:: {{createdDate}} <br>
{{/each}}
</template>
兩個{{#each myTopViews}}和{{#each top3Trending}}成功顯示,但不正確。當
Meteor.subscribe變量categoryMan
( 'MerchantTrending',categoryMan, 'merchantTopViews')
變化值,它影響雙方都{{#each myTopViews}}
和{{#each top3Trending}}
,結果當它應該只是一個影響{{#each top3Trending}}
。
我如何獲得訂閱,不會影響{{#each myTopViews}}
和{{#each top3Trending}}
,但只有{{#each myTopViews}}
在我的模板中?
感謝您的幫助!
怎麼樣從服務器發佈帶有必要字段的集合,並在客戶端應用選擇器? –