【发布时间】:2017-01-16 20:27:06
【问题描述】:
我有一个类似的动态组件:
{{component fooProperty owner=this}}
fooProperty 是数据驱动的,有时会错误地关闭,至少现在在开发中是这样,但我担心它也可能在 prod 中错误地关闭(由于应用程序版本控制、持久存储等)。基本上,我不相信这总是正确的(即可解析为组件)。当该值关闭时,整个应用程序崩溃:
Uncaught Error: Assertion Failed: HTMLBars error: Could not find component named "some-inexisting-component" (no component or template with that name was found)
EmberError @ ember.debug.js:19700
assert @ ember.debug.js:6719
assert @ ember.debug.js:19502
componentHook @ ember.debug.js:10894
render @ ember.debug.js:12782
render @ ember.debug.js:12732
handleKeyword @ ember.debug.js:46584
keyword @ ember.debug.js:46709
exports.default @ ember.debug.js:12483
handleKeyword @ ember.debug.js:46545
handleRedirect @ ember.debug.js:46531
...
我更愿意捕获此类异常并防止整个应用程序崩溃。我可以想到一个解决方法,例如。审查 fooProperty 与 App.__container__.lookup 的回报并返回一个通用的“缺失”组件。但如果可能的话,我仍然希望有一种方法来捕获和处理渲染期间引发的异常。
【问题讨论】: