我有多个嵌套的Web组件来表示网格。我需要用飞镖码编写这些。 我有一个按照dart docs:
的建议创建Web组件的功能void addWebComponent(WebComponent component,String tagName,WebComponent parent) {
component.host = (new Element.html("<${tagName}></${tagName}>"));
var lifecycleCaller = new ComponentItem(component)
..create();
parent.append(component.host);
lifecycleCaller.insert();
return;
}
每个Web组件都包含如下模板:
<template>
<div class="grid">
<div class="large-12 columns" >
<content></content>
</div>
</div>
</template>
我的假设是调用 parent.append(component.host); 会将注入的Web组件html添加到CONTENT元素中。它没有。 这就是我期待的结果:
<x-grid>
<div class="grid">
<div class="large-12 columns">
<x-row>
<div class="row">...</div>
</x-row>
</div>
</div>
</x-grid>
这就是我得到的:
<x-grid>
<div class="grid">
<div class="large-12 columns">
**[Content should be here!]**
</div>
</div>
**[ CONTENT ENDS UP HERE]**
<x-row>
<div class="row">...</div>
</x-row>
</x-grid>
我的猜测是,从dart代码中,您无法通过parent.append(component.host)添加到Web组件的内容。是否还需要一些其他功能或步骤来完成这项工作? 这太痛苦了。
答案 0 :(得分:2)
试试这个:
添加到父级:
List<WebComponent> items = toObservable([]);
变化:
parent.append(component.host);
要:
parent.items.add(component);
然后将HTML修改为:
<template>
<div class="grid">
<div class="large-12 columns" template iterate="item in items">
{{ new SafeHtml.unsafe(item.host.innerHtml) }}
</div>
</div>
</template>