在路线中将emberjs组件附加到dom中

时间:2016-03-24 20:32:11

标签: dom ember.js

我动态创建一个带有ember路径的ember组件,需要将此组件附加到DOM中。我这样做:

createwidget : function (row, column, value, htmlElement) {
                var componentObj = {};
                componentObj.props = {
                                        id: 'selectid', 
                                        content: $this.codes, 
                                        optionValuePath: 'code', 
                                        optionLabelPath: 'value', 
                                        selectedValue: '', 
                                        name: 'selectInputName', 
                                        selectedLabel: '', 
                                        dropdownLabel: 'selectLabel', 
                                        placeholder: 'selectPlaceholder'
                                    };
                componentObj.name = 'jpma-select';
                componentObj.type = 'component';
                var component = $this._createComponent(componentObj);
                component.appendTo($(htmlElement));
            }

createwidget是来自jqxgrid小部件的函数。它允许您动态创建元素并将它们添加到网格单元格。 _createComponent是我们创建自定义ember组件的自定义方法之一,在本例中为select。我收到错误: "断言失败:您无法附加到现有的Ember.View。请考虑使用Ember.ContainerView。"

如果我将组件包装为jQuery对象,如下所示: $(组分).appendTo($(HTML元素));

我收到此错误: " jpma-analytics-tracker.js:154 TypeError:无法读取属性' ownerDocument'未定义的(...)"

那是什么给出的?我能做些什么来完成这项工作? 感谢

1 个答案:

答案 0 :(得分:0)

这可能是Javascript或jQuery方式。也许你会让它发挥作用,但IMO并不像Ember那样。

使用component helper创建动态组件。

我个人的经验,如果你需要一个组件来修改,可以在组件(可能是包装器/外部组件)中进行,而不是在路径中。