【发布时间】:2020-05-18 16:08:36
【问题描述】:
假设我有一个像这样的组件,其中包含显示或隐藏组件内内容的逻辑:
@Component({
selector: 'hello',
template: `<div *ngIf="visible"> <h1>Hello {{name}}!</h1></div>`,
styles: [`h1 { font-family: Lato; } div { border: 1px solid blue }`]
})
export class HelloComponent {
@Input() name: string;
visible: boolean;
ngOnInit() {
this.visible = this.name === "Stranger"
}
}
我在另一个组件中这样使用它:
<div class="container">
<hello class='hello-class' name="Stranger"></hello>
<!-- This will not be visible -->
<hello class='hello-class' name="Not stranger"></hello>
</div>
我将一些样式应用于hello 组件,如下所示:
.hello-class {
display: block;
margin-bottom: 80px;
}
hello 组件的第二次使用将因为组件中的条件而变得不可见。但即使组件不可见,我添加到 hello-class 的样式也会应用于组件。
我无法移动条件以将组件显示/隐藏到父级。所以我不能在组件之前做一个*ngIf。
有什么方法可以让我只在组件可见的情况下应用这种样式?
这里是说明问题的 stackblitz 的链接:https://stackblitz.com/edit/angular-ivy-mfrb7j
【问题讨论】:
-
在什么情况下显示/隐藏相应的 hello 组件?
-
@AkhilChandran:基于一些逻辑在
hello组件内部。 -
你能把你使用的逻辑添加到问题中吗?
-
@AkhilChandran 它已经在代码(
visible属性)和 stackblitz 链接中。
标签: javascript css angular typescript