编程语言
首页 > 编程语言> > javascript-在Meteor中使用全局帮助器的模板帮助器中的异常

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