新问题:

因此,即时通讯正在寻找一种方法来切换名为hotel-inhotel-out的两个CSS类的显示。

这两个类将包含在我的所有22个组件中。
要切换显示,im使用名为inHotel的变量,该变量包含用户是否在旅馆中的任何位置。

当变量为true时,hotel-in将可见,而hotel-out隐藏。

当变量为false时,hotel-out将为visible,并且隐藏旅馆。

我怎样才能最好地做到这一点?
我可以在主控制器中执行所有加载所有组件的常规操作吗?

还是我必须在22个以上的控制器中做一些特别的事情?



旧问题:

在我的主要应用程序组件中,我有路由器插座,其中包含以下内容:

<style *ngIf="inHotel">

  .hotel-in {
    display:block;
  }

  .hotel-out {
    display:none;
  }
</style>

   <style *ngIf="inHotel == false">

  .hotel-in {
    display:none;
  }

  .hotel-out {
    display:block;
  }
</style>


但是当进行检查时,即使inhotel为假,也确实会创造出这种风格。

这个想法是一个函数将切换这个旅馆。

其他组件中的所有内容都将具有div类hotel-outhotel-in。并且根据inhotel的class / style可见/不可见。

但是由于某种原因,它将无法正常工作。

我需要做什么才能使这项工作?

编辑2:

我可以使用ngclass,并通过每个控制器/路由获取hotelstate。

但是在PHP和angular1中,我可以选择将该样式代码放入主文件(路由器出口所在的位置)中,并且可以按预期工作。

理想的情况是,只有一个地方可以更改hotel-inhotel-out的显示以切换display nonedisplay block

那么在其他路线/视图中具有hotel-inhotel-out的所有内容都会根据id进行操作。

编辑3:

html样式的示例,该示例将处于不同的路径中。

<div class=hotel-in">You are in hotel , more html...</div>
<div class="hotel-out">Something completely diff here </div>


编辑3:

即使当im style *ngIf时,它也不会在页面上产生任何带有内容的标签。

编辑4:

似乎我什至不能在angular / angular-cli html中发布样式标签。怎么来的?以及如何制作样式标签?

由于某种原因,即使这不会出现在页面上。

  <style>
.test {
  color:black;
}
      </style>

最佳答案

如果使用https://github.com/deanmcpherson/angular-inline-style将样式规则写在html页面本身中,则会看到更改样式规则。

这个想法是每次范围更改时都重新构建样式规则,默认情况下,angular不提供此功能。但是我们可以编写一条指令,该指令链接到样式标签并根据范围重新编译。

关于javascript - 未创建组件的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46514913/

10-12 07:09