javascript-在Meteor中使用全局帮助器的模板帮助器中的异常
作者:互联网
我用UI.registerHelper添加了一个全局帮助器函数,该函数返回一个String.如果我访问特定站点,则可以看到正确的输出,但是出现以下异常:
Exception in template helper: http://localhost:3000/client/helpers/global_helpers.js?c1af37eca945292843a79e68a3037c17a0cfc841:18:45
http://localhost:3000/packages/blaze.js?cf9aea283fb9b9d61971a3b466bff429f9d66d7d:2458:21
这是我的代码:
UI.registerHelper('levelMode', function() {
return Games.findOne({_id: this._id}).mode ? 'Difficult' : 'Easy';
});
任何想法如何解决这个问题?
解决方法:
尝试添加一些检查:
UI.registerHelper('levelMode', function() {
if (typeof Games !== 'undefined' && Games != null)
var game = Games.findOne({_id: this._id});
if (game != null && game.mode)
return 'Difficult';
return 'Easy';
});
我的直觉是,错误是由以下情况引起的:尚未定义游戏(在定义集合之前先渲染模板)或findOne返回null(找不到任何内容).您无法访问模式属性null.
标签:meteor,javascript 来源: https://codeday.me/bug/20191121/2050762.html