gpt4 book ai didi

dart - 从 dart 代码中嵌套 Web 组件

转载 作者:行者123 更新时间:2023-12-03 02:58:54 24 4
gpt4 key购买 nike

我有多个嵌套的 Web 组件来表示一个网格。我需要在 Dart 代码中编写这些。
我有一个功能来创建 dart 文档推荐的 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); 将注入(inject)的 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 组件的内容中。是否需要其他一些功能或步骤才能完成这项工作?
这太痛苦了。

最佳答案

试试这个:

添加到父级:

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>

关于dart - 从 dart 代码中嵌套 Web 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com