【发布时间】:2013-08-15 19:10:32
【问题描述】:
我有一个视图,它使用 3rd 方库在 didInsertElement 挂钩中呈现额外的 DOM 元素。添加这些新元素后,我需要在其中添加一些子视图,以便它们可以渲染动态数据。
这是我尝试过的:
App.MyView = Ember.View.extend({
didInsertElement: function() {
create3rdPartyDomElements();
var element = this.$('someSelector');
childView = this.createChildView(App.SomeViewClass, attributesDict);
childView.appendTo(element);
}
});
(jsbin:http://jsbin.com/idoyic/3)
这会按预期呈现我的视图,但在 Ember RC 7 中会出现以下断言错误:“您不能附加到现有的 Ember.View。请考虑改用 Ember.ContainerView。”
按照here 的建议,我已尝试扩展 ContainerView,这可行,但我无法在特定的 DOM 选择器处插入子视图。它只是在父视图的开头插入子视图。
有人可以帮帮我吗?非常感谢!
【问题讨论】:
-
你想在生成的 dom 中使用绑定或其他一些 ember 技术吗?还是只是视觉上的东西,并不重要?你的第三方库是什么?
-
它是 codemirror.net 是的 - 我需要在生成的 dom 中使用绑定。不是在编辑器中同步代码,而是在编辑器中添加额外的可视化小部件。
-
这个 hack 是在 IRC 上提出的,但在切换了几条路线后似乎会产生一些丑陋的副作用:jsbin.com/owepeh/1
-
不错的@AndreiSoare,但是,我们添加了 run.next 代码?没有它也能正常工作
-
是的,它似乎可以在没有 run.next 的情况下工作。但是正如我所说,它引入了一些副作用:离开路线并再次进入时,开始出现其他问题:-s
标签: ember.js