我想要路由到一個頁面,如果存在的話,另一個如果不存在。但是,我不想訂閱整個集合(〜數千個),因爲我認爲它會影響性能。我該怎麼做呢?Meteor.js:如何限制訂閱時動態路由?
我嘗試過這樣的事情,但由於某種原因,Meteor在頁面加載中經過兩次路由器代碼,並在重定向到項目頁面之前短暫地閃爍錯誤頁面,我不希望發生這種情況。
這是我有:
router.coffee
to: (id)->
Meteor.subscribe 'item', id
item = Items.findOne id
if item
# if the item exists, then redirect to it
Session.set 'currentItemId', id
'itemPage'
else
# if not, then redirect to the sorry page
'sorryPage'
publications.coffee
Meteor.publish 'item', (id)->
return Items.find({_id: id})
訂閱整個集合會影響性能,對不對?有沒有更容易的方法來檢查集合內的存在,而不訂閱它?我試圖做一個Meteor.call來檢查它的服務器端,但它沒有工作,並不理想(路由器等待服務器調用..)。有沒有一種「正確」的方式來做到這一點?
你要求的功能是建立在鐵路路由器(http://www.paypertise.com/meteorjs/iron-router-tutorial)上,你應該考慮使用它。 – saimeunt