【发布时间】:2023-03-23 09:19:02
【问题描述】:
我需要能够告诉一个角度组件根据动态数据渲染另一个角度组件。我认为这需要内容投影,但我只能在简单的情况下使内容投影工作。
示例场景
我在 vanilla TypeScript 中有以下表格数据:
const headings = [
{ id: 'cat', label: 'Cat' },
{ id: 'nameIt', label: 'Type the name' }
]
const data = [
{ cat: 'Tabby', nameIt: (name) => updateTabbysName(name) },
{ cat: 'Ginger', nameIt: (name) => updateGingersName(name) },
]
我还有四个 Angular 组件:
-
simple-span在范围内呈现文本。在这种情况下,它将渲染 cat 字段。 -
text-input呈现文本输入。在这种情况下,它将呈现一个基本的 HTML 输入,当用户输入文本时将调用 nameIt 回调。 -
my-special-cat-table将提供headings和data变量,允许了解text-input和simple-span -
generic-table负责渲染表格 DOM 元素。 不允许知道text-input或simple-span存在。
目的是让generic-table 完全看不到单元格渲染组件
是否有可能在 Angular 7 中实现这一点?
【问题讨论】:
-
简短答案是否定的。
-
目前,没有 100% 通用的解决方案。
-
我认为您正在要求 ngx-datatable 和 Angular Material Data Table 已经在做的事情。
-
对于任何对我的去向感兴趣的人......我们最终切换到了 React。根本区别在于,React 是贯穿整个组件树的 JavaScript,而 Angular 在每个组件之间都有一个模板语言层。这意味着将未知/动态组件向下传递树是 React 是微不足道的,而在 Angular 中它目前是不可能的。或者至少不是通用的方式。
标签: javascript angular typescript