2015-05-19 74 views
1

我在流星中創建基於位置的聊天應用。現在我只想呈現用戶區域中的聊天消息。 TheRegion.region變量被填充了HTML5地理位置請求。等待渲染流星模板助手,直到變量可用

Template.locationchat.helpers({ 
    messages: function() { 
    return Messages.find({location: TheRegion.region}); 
    } 
}); 

這段代碼的問題是,TheRegion.region變量仍然是null當這個助手被調用。有沒有辦法在地理位置函數的回調中運行幫助器?或者當變量有值時運行模板助手?

回答

2

這是因爲你的變量沒有反應。

在你onCreated:

TheRegion = new ReactiveDict(); 
TheRegion.set('region',undefined); 

現在,區域總是會在到達幫手&當值的變化,你的助手將重新運行時間存在。

+0

謝謝..我第一次安裝了reactivedict包,它後來立即工作! –

3

我經常在流星中發現,如果你在等待一個變量,你所需要的只是一個if語句來保護你自己。

試試這個:

Template.locationchat.helpers({ 
    messages: function() { 
     if(TheRegion.region) 
      return Messages.find({location: TheRegion.region}); 
    } 
    }); 

感覺並不自然,但通常它的工作原理。試一試。