我第一次将我的应用程序部署到我的暂存环境中,但我遇到了一个错误......我的一条路线无法呈现其模板。我在控制台中看到了这个错误:
Uncaught TypeError: Cannot read property 'isHelperInstance' of undefined
我在开发中没有看到这个错误。
我正在ember-cli-rails
使用 Heroku 为应用程序提供服务。
我该如何解决这个问题?
我第一次将我的应用程序部署到我的暂存环境中,但我遇到了一个错误......我的一条路线无法呈现其模板。我在控制台中看到了这个错误:
Uncaught TypeError: Cannot read property 'isHelperInstance' of undefined
我在开发中没有看到这个错误。
我正在ember-cli-rails
使用 Heroku 为应用程序提供服务。
我该如何解决这个问题?
由于不正确地引用助手,我实际上遇到了这个错误。调用了我的助手,concatTwo()
但在车把中,您必须使用 kabob-case 引用它,即concat-two
. 我们有一些 Handlebars 引用concatTwo
破坏了这些页面并显示了此错误。毫不奇怪,将其重构为使用 kabob 案例版本修复了该错误。
奇怪的是,这并没有对开发环境造成任何问题,即使在使用完全相同的数据运行时也是如此。
此错误的原因是由于在模板中引用了不存在的组件。我在开发中没有看到错误的原因是因为我的开发环境中没有与暂存中相同的数据。所以我从来没有看到我的模板中会导致错误的部分。
Ember-2.6.3
为了让我的开发环境表现出这种行为,我必须清除我的node_modules
/ 并重新进行npm-install
所有操作。我也清理了我的bower_components
并重新bower install
整理了它们。不知道是哪个有所作为。
我想我同意@vkoves 关于为您的助手提供烤肉盒的观点。但此外,我认为您在引用助手或组件时必须小心使用点符号。
我们将一些格式助手嵌套在一个名为formatters
. 从我们的 Ember 应用程序的角度来看,它们看起来像这样:app/helpers/formatters/date
我们之前在整个应用程序中将这个助手引用为:{{formatters.date ...}}
或(formatters.date ...)
。
?在 Node/NPM 生态系统最近发生了一些变化之后?,看来我们现在必须使用斜线表示法而不是点表示法来引用我们的嵌套助手:{{formatters/date ...}}
或(formatters/date ...)
我们还刚刚发现 Ember-2.10 删除了引用组件的点符号……它显然不在发行说明中。我们必须在我们的应用程序中到处解决这个问题(https://github.com/emberjs/ember.js/issues/14659)。