为此搜索了一个答案,并且看到人们正在为此而苦苦挣扎,但没有直接答案,尤其是关于已发布的2.x版本的Angular。Angular2:由路由器动态插入的样式组件
假设你有app.component.html
用下面的代码:
<div>
<router-outlet></router-outlet>
</div>
路由器动态地插入你的自定义组件,说my-component
和(奇怪)该组成部分场所作为router-outlet
元素,像这样一个兄弟:
<div>
<router-outlet></router-outlet>
<my-component></my-component>
</div>
显然,路由器可以在其中放置另一个组件,因此在app.component.css
文件中创建样式时,不能依赖名称my-component
。
那么......你如何做到这一点?
为什么这很重要?为什么不直接在my-component
CSS中设置:host
的样式?那么,因为并非所有的风格都属于那里。例如,如果app.component决定它是一个弹性容器(即,display: flex;
),那将意味着该my-component
元素应该被设计为弹性项目(即,flex: 1 0 0;
)。将柔性项目样式放置在my-component
的内部似乎是一种不好的做法,因为您将它与其父组件的样式相结合。
编钟如果你知道答案。
谢谢!
我试过类似的东西没有运气,最接近的解决方案是让父母将必要的数据推送到服务并让孩子观察它来更新它的主机数据。显然不理想,但据我所知,无法通过路由器插座将数据从父级传递到子组件。 –