ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-在Meteor中使用全局帮助器的模板帮助器中的异常

2019-11-21 09:36:30  阅读:157  来源: 互联网

标签:meteor javascript


我用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有