Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 基于路线设置Angular2组件的样式_Css_Angular_Angular Routing - Fatal编程技术网

Css 基于路线设置Angular2组件的样式

Css 基于路线设置Angular2组件的样式,css,angular,angular-routing,Css,Angular,Angular Routing,我在两条路线中使用了一个名为“SearchComponent”的组件。在第一条路径中,组件以某种方式设置样式-例如,有3个输入文本是display:block,因此它们相互堆叠。在另一个路径中,我希望3个输入文本是内联块 问题是,我可以使用布线有条件地更改组件样式吗? 我希望@Component decorator具有一些条件逻辑功能,但从我的阅读资料来看,这是不可能的。如果是这样,那么我可以使用一个单独的styleUrl路径 有人能帮忙吗 您是否考虑过使用路由参数?可以使用管线中的某些变量作为

我在两条路线中使用了一个名为“SearchComponent”的组件。在第一条路径中,组件以某种方式设置样式-例如,有3个输入文本是
display:block
,因此它们相互堆叠。在另一个路径中,我希望3个输入文本是内联块

问题是,我可以使用布线有条件地更改组件样式吗? 我希望@Component decorator具有一些条件逻辑功能,但从我的阅读资料来看,这是不可能的。如果是这样,那么我可以使用一个单独的styleUrl路径


有人能帮忙吗

您是否考虑过使用路由参数?可以使用管线中的某些变量作为样式设置的条件。例如:

 https://fooServer/fooApp/#/main/YourComponent;type=search1
变量
类型
这里可以是字符串、布尔值等。。您可以在从上一个组件更改管线的过程中进行设置

然后在
ngOnInit()
中调用
this.\u route.snapshot.params['type']
获取路由参数中的值。然后在模板中,添加到标记
[attr.class]=“type==search1?search1Class:search2Class”

“带参数的路由定义”标题下的路由参数信息。
如果我误解了你的问题,请告诉我:)

太棒了。工作完美。非常感谢。