我有这个帮手:
Template.showScannedData.helpers({
'lastConnectionNetId': function(){
return Connections.findOne().netId;
}
});
与以下模板相关联:
<template name="showScannedData">
{{#if lastConnectionNetId}}}
my last connection's id: {{lastConnectionNetId}}<br>
{{/if}}
</template>
问题是,直到我实际上没有向连接集合添加内容(在Cordova中完成,通过从NFC标记获取一些数据然后将其存储在MongoDB中),我得到以下异常:
模板助手中的异常:TypeError:无法读取属性&#39; netId&#39;未定义的
我理解异常是由数据可用之前激活的模板引起的。
也是&#34;隐藏&#34;对用户的问题(即没有显示不完整的UI),我在模板中添加了一个检查
如果是lastConnectionNetId
这是正确的方法吗?
只要集合为空,我该如何避免出现异常?
答案 0 :(得分:1)
我是你的情况,findOne返回一个对象。如果没有文档满足查询,则该方法返回null。这意味着您的对象将为空,netId将是未定义的。我会试试这个:
Template.showScannedData.helpers({
'lastConnection': function(){
return Connections.findOne();
}
});
<template name="showScannedData">
{{#if lastConnection}}}
my last connection's id: {{lastConnection.netId}}<br>
{{/if}}
</template>
这可以解决您的问题。
答案 1 :(得分:1)