我动态创建一个带有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'未定义的(...)"
那是什么给出的?我能做些什么来完成这项工作? 感谢
答案 0 :(得分:0)
这可能是Javascript或jQuery方式。也许你会让它发挥作用,但IMO并不像Ember那样。
使用component helper创建动态组件。
我个人的经验,如果你需要一个组件来修改,可以在组件(可能是包装器/外部组件)中进行,而不是在路径中。