2015-05-19 108 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}); 
    } 
    }); 

感觉并不自然,但通常它的工作原理。试一试。