未被捕获的meteor中的types错误
我有这个代码:
Meteor.subscribe('practices'); Session.set('practice', 'Practice 1'); Template.laps_t.laps = function () { var obj = Practices.findOne({name: Session.get('practice')}); return obj.lap_n; };
我得到一个错误: Uncaught TypeError: Cannot read property 'lap_n' of undefined
。
我知道lap_n
实际上是obj
一个属性。
我没有使用自动订阅。 有任何想法吗?
编辑:
解决了。 多谢你们。
如果(obj){return obj.lap_n}就像你说的那样做了。
您应该始终检查模板内是否存在对象。 这样做的方式是模板将立即在页面加载时执行,甚至可能在订阅从服务器检索到mongo数据之前,所以在这种情况下,您的obj
将是未定义的,并且不会有您期望的属性。 但是,由于模板是被动的,一旦数据可用,您的Practices.findOne
调用将被重新评估,并重新执行模板。 然后它会工作。
你可能要等到数据到达,所以可能是你可以尝试添加
if obj return obj.lap_n else return { lap_n: 0 }