重新注册ApplicationView - 缺少contextualElement

时间:2014-12-17 12:12:16

标签: ember.js

在重新呈现ApplicationView期间,我遇到了一些奇怪的问题。

所以我在ApplicationView中有以下关于rerender的代码:

languageChanged: function() {
    this.rerender();
}.observes('App.i18nResource')

会导致以下错误:

Uncaught Error: Assertion Failed: Required contextualElement for view <App.ApplicationView:ember676> is missingember.js:3865
Ember.assertember.js:10627 
Renderer_renderTreeember.js:41082 (anonymous function)
DeferredActionQueues.invokeember.js:749 
DeferredActionQueues.flushember.js:135 
Backburner.endember.js:521 (anonymous function)

我怀疑你是否知道问题出在哪里或者你能解释一下contextualElement是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

我的假设是它尝试在视图呈现其上下文之前重新渲染视图。 contextualElement代表您的观点 DOM对象(应该回溯到文档body元素),因为ember metal-views renderer.js #L58-68

要解决您的问题,可能需要尝试通过安排this.rerender()这样的Ember.run.scheduleOnce('afterRender', this, function() { this.rerender() }) 调用来确保视图已经呈现:

{{1}}