javascript - 组装助手中的类型错误

标签 javascript handlebars.js typeerror templating assemble

尽管没有在模板中使用过滤器助手,但 TypeError 会阻止组装完成。看起来 options 参数未被传递或作为 undefined 被传递。

这是堆栈跟踪:

Warning: Cannot read property 'data' of undefined Use --force to continue.
TypeError: Cannot read property 'data' of undefined
    at Object.helpers.filter (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars-helpers/lib/helpers/helpers-collections.js:357:15)
    at Object.eval (eval at <anonymous> (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/compiler/compiler.js:564:23), <anonymous>:41:50)
    at Object.<anonymous> (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/runtime.js:30:33)
    at Object.search (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/compiler/compiler.js:1274:21)
    at Object.Handlebars.VM.invokePartial (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/runtime.js:81:28)
    at Object.eval (eval at <anonymous> (/home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/compiler/compiler.js:564:23), <anonymous>:86:17)
    at /home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/runtime.js:30:33
    at /home/tim/workspace/projects/severine/node_modules/assemble/node_modules/assemble-handlebars/node_modules/handlebars/lib/handlebars/compiler/compiler.js:1274:21
    at Object.render (/home/tim/workspace/ae_projects/severine/node_modules/assemble/node_modules/assemble-handlebars/index.js:38:17)
    at Object.render (/home/tim/workspace/projects/severine/node_modules/assemble/lib/engine.js:87:17)

Aborted due to warnings.

如果我注释掉过滤器函数的主体,汇编将正常运行。

最佳答案

@tim 我们通常会在数据上下文中的属性名称与 handlebars 助手发生冲突时看到这些错误。

如果您在数据上下文中将 filter 作为属性,请尝试使用 {{this.filter}} 而不是 {{filter}} code> 给 Handlebars 一个提示,它应该使用属性而不是助手。

本题来自this issue on Github .我希望这可以帮助其他遇到同样问题的人。

关于javascript - 组装助手中的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835178/

相关文章:

python - 使用Open CV在图像中添加文本

node.js - JavaScript 和分号

javascript - xsltprocessor 在 Chrome 中调试

javascript - Handlebars 模板无法处理来自 Backbone 的 JSON

javascript - 如何为 "Search"函数执行自动提交?

javascript - Ember.js 中的 View 与组件

rest - EmberJS 处理从 REST Api 返回的复杂对象

python - 使用带有附加参数的 map - python

javascript - 如何更改 `<Div>` 及其父 `<Td>` 的高度

javascript - 具有输入范围的 HTML 音频可访问性