在重新呈现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是什么?
谢谢。
答案 0 :(得分:0)
我的假设是它尝试在视图呈现其上下文之前重新渲染视图。 contextualElement
代表您的观点父 DOM对象(应该回溯到文档body
元素),因为ember metal-views renderer.js #L58-68
要解决您的问题,可能需要尝试通过安排this.rerender()
这样的Ember.run.scheduleOnce('afterRender', this, function() { this.rerender() })
调用来确保视图已经呈现:
{{1}}