我有一个视图,它使用第三方库在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.”
我已经尝试过扩展ContainerView,如here建议的那样有效,但我无法在特定的DOM选择器中插入子视图.它只是在父视图的开头插入子视图.
有人可以帮帮我吗?非常感谢!
解决方法
您可以将子视图渲染到父视图的隐藏div中,然后将它们分离并附加到didInsertElement钩子中的任意DOM元素中.
有关相关问题(组件而非视图),另请参阅this question.