3

我正在尝试通过 id 将视图附加到占位符 div,与此处的答案一致:如何使用 Ember 将新模板动态插入 DOM?.

insertInfoBox:function (context) {
    var infoBoxView = App.LocatorInfoBox.create({
        context:context
    });

    infoBoxView.appendTo('#infoBoxHolder');
},

我收到以下错误:未捕获的错误:

断言失败:您不能附加到现有的 Ember.View。考虑改用 Ember.ContainerView。

'infoBoxHolder' div 嵌套在另一个视图中,但它本身不是一个视图。如果我将 infoBoxView 设置为 parentView 的子视图(如果我将父视图更改为容器视图),我不清楚如何将视图插入子 div 'infoBoxHolder' 而不是直接插入父容器视图的根元素.

4

1 回答 1

0

我不确定您为什么要这样做,但您可以使用 didInsertElement 函数。就像是:

App.MyView = Ember.View.extend({
    didInsertElement: function() {
        $('#elementId').append(...);
    }
});

我会这样做的方式是通过一个模板,比如:

App.MyView = Ember.View.extend({
    template: Ember.Handlebars.compile('{{#if someCondition}}{{MyApp.MyOtherView valueBInding="..."}}{{/else}}');
});
于 2012-12-07T18:14:28.993 回答