我有一个名为 list
的组件,它有 fab-button
与 icon
和 tooltip-text
它看起来像这样:
我想把它变成 generic component ,这样我就可以重新使用这个组件 . 所以我在另一个名为 SCHOOL & COLLEGE 的组件中重用 list
组件,如下所示:
我正在重新使用 list
组件,但我想根据它所在的组件更改 fab-button's
图标和 tooltip text(i,e add-school)
.
手段
1)如果 SCHOOL
组件中存在 list
组件, fab-button
icon
和 tooltip-text
应该不同 .
2)如果 list
组件中存在 list
组件, fab-button
icon
和 tooltip-text
应该不同 .
如何根据 component 动态更改 icons
和 tooltip-text
?我没有为 components reusability 找到任何资源 .
这是stackblitz DEMO .
3 回答
根据您当前的要求,您需要有3
@input
和1@Output
工作演示在这里 - https://stackblitz.com/edit/angular-material2-issue-udhiaz
您应该使用
@Input
.在列表组件TS文件中,添加输入属性:
在模板中,使用此值而不是硬编码值
然后,您可以传入值,如下所示:
Here is a Stackblitz demo
您可以将数据作为
@Input()
属性传递给list
组件 - 如果它是tooltip
您只需添加为字符串并将其绑定在html
中 - 如果它是图标您可以直接发送图标从父母那里传来
<app-list tooltips="Add School"></app-list>
现在您要传递图标的情况 - 您可以使用内容投影添加
list.component.html
加载组件时传递图标
通过这种方式,您甚至可以根据加载的组件更改图标甚至工具提示 - 如果您要根据
class
名称更改图标,则可以将类名作为另一个@Input()
属性传递给子项希望这能帮到你 - 快乐编码:)