angular - Angular2 中类似 React 的组件上下文
问题描述
我如何使用 Angular 做与 React Context API 类似的事情?例如,像这样:
<>
<ThemeContext.Provider value="red">
<Toolbar />
</ThemeContext.Provider>
<ThemeContext.Provider value="green">
<Toolbar />
</ThemeContext.Provider>
</>
这是一个工作示例:https ://next.plnkr.co/edit/ESWRJapMh8k9wCe9
(我为 Angular 创建了类似的样板:https ://next.plnkr.co/edit/OGnIpgnIsVC9wZXb 。您可以提供一个工作叉作为答案。)
解决方案
真的我不知道你想达到什么目的。所以我抛出三个想法
在 Angular 中,组件可以使用@Host在构造函数中获取他的“父级”
constructor(@Optional() @Host()parent:ParentComponent){}
然后,您可以访问“ParentComponent”的所有属性 - 父级可以是祖父级
如果你只想使用类总是可以在styles.css中定义一个css的方式(记住styles.css是为所有应用程序共享的-是你在angular.json中使用的文件-)
.red button
{
color:red
}
.green button
{
color:green
}
另一个想法是您的父组件使用ng-content
推荐阅读
- asp.net-core - DotNetCore 项目 - 添加 Microsoft.AspNetCore.SpaServices.Extensions
- google-calendar-api - 使用 Google Calendar API 更改用户对未来事件的响应状态
- java - 面临列表列表字符串的序列化问题
- apache-kafka - Kafka docs Producer 可能的消息丢失
- python - 从有向图中制作只有相互边的子图的最佳方法
- react-native - Suggestion for fetch the data in database and set progress bar
- c - 被索引引用时的段错误
- maven - 如何从本地安装 Maven 依赖项?
- sql - 内含 JSON 表的表
- php - 在 Laravel 的供应商模型中覆盖表名