当插件已经在另一个组件中时,从插件的元素创建一个组件
Creating a component from a plugin's element when plugin is already inside another component
我使用的是第三方插件,我无法控制它。我在我的整个应用程序中使用 Ember 除了这个插件,我需要在由所述插件呈现的 div 中实例化一个组件以我想要的方式控制它(避免使用 jQuery 事件等)。
1- 我正在创建一个名为 "MyNewComponent"
的组件
2- 当前结构:
<myComponent1>
<myPlugin-notEmber>
<div-where-I-want-to-append-MyNewComponent class="divClass"/>
</myPlugin-notEmber>
</myComponent1>
3- 请注意 "div-where-I-want-to-append-MyNewComponent" 是由插件呈现的,而不是由我呈现的。
4- 我目前在 myComponent1 中尝试做的是:
onDidInsertElement: Em.on('didInsertElement', function() {
this.$().find('.divClass').each(function(index, element) {
MyNewComponent.create().appendTo(Em.$(element));
});
}),
为什么不起作用:
我得到这个:(Ember 1.13)
"You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead."
我在找什么:
a) 正确的方法或
b) 等效的替代方案(将在该插件内创建一个组件)
您最好的选择是使用 ember-wormhole
这允许您将任何内容放入另一个 div 中并带有 id,因此:
{{#ember-wormhole to="destination"}}
{{my-new-component}}
{{/ember-wormhole}}
还有其他地方
<div id="destination"></div>
这将渲染 div 中的 {{my-new-component}}
。
我使用的是第三方插件,我无法控制它。我在我的整个应用程序中使用 Ember 除了这个插件,我需要在由所述插件呈现的 div 中实例化一个组件以我想要的方式控制它(避免使用 jQuery 事件等)。
1- 我正在创建一个名为 "MyNewComponent"
的组件2- 当前结构:
<myComponent1>
<myPlugin-notEmber>
<div-where-I-want-to-append-MyNewComponent class="divClass"/>
</myPlugin-notEmber>
</myComponent1>
3- 请注意 "div-where-I-want-to-append-MyNewComponent" 是由插件呈现的,而不是由我呈现的。
4- 我目前在 myComponent1 中尝试做的是:
onDidInsertElement: Em.on('didInsertElement', function() {
this.$().find('.divClass').each(function(index, element) {
MyNewComponent.create().appendTo(Em.$(element));
});
}),
为什么不起作用:
我得到这个:(Ember 1.13)
"You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead."
我在找什么:
a) 正确的方法或
b) 等效的替代方案(将在该插件内创建一个组件)
您最好的选择是使用 ember-wormhole
这允许您将任何内容放入另一个 div 中并带有 id,因此:
{{#ember-wormhole to="destination"}}
{{my-new-component}}
{{/ember-wormhole}}
还有其他地方
<div id="destination"></div>
这将渲染 div 中的 {{my-new-component}}
。