我有一个名为header的组件,但在它里面我的ngIf不工作,我不知道为什么...
header.ts
@Input() title: string;
@Input() subTitle: string;
@Input() isPage: string;
字符串
header.html
<header>
<div>
//this *ngif does not work, if its 'yes' it hide the element and if i set to 'no' still hide
<ion-buttons *ngIf="isPage === 'yes' " slot="start" (click)="goBack()" style="margin-left: 0.5em;">
<ion-button>
<ion-icon name="chevron-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
</div>
<div>
// this work
<h2>{{title}}</h2>
<h1>{{subTitle}}</h1>
</div>
</header>
型
otherComponent.ts
<ion-content>
<app-header title="lorum" subTitle="ipsum" isPage="yes" ></app-header>
</ion-content>
型
5条答案
按热度按时间af7jpaap1#
您应该使
isPage
为布尔值,并像下面这样传递输入字符串
我创建了一个StackBlitz示例
bnlyeluc2#
为什么使用isPage作为字符串?最好使用boolean
然后你把代码改成
字符串
还有
型
还有
型
mo49yndu3#
在另一个组件中,应该将
isPage
的值赋给一个变量,如const isPage =“yes”; 那就这么做
<app-header [title]="App" [subTitle]="header" [isPage]=isPage>`个7y4bm7vi4#
对于其他有问题的人来说,上面的CommonModule解决方案并不适用于他们。
我也遇到了同样的问题,因为我创建了一个新的组件,里面有一个嵌入式
*ngIf
,这个组件运行的是一个内部类变量,这些变量是由ngOnChanges()
方法内部的逻辑派生的。我所做的任何事情都不允许ngIf不呈现组件。修复它的是我不得不杀死我的
ng serve
并重新启动我的angular dev服务器。一旦我这样做了,*ngIf
就开始正确渲染了。¯_()_/¯
v1uwarro5#
我也有同样的问题。Angular没有很好地构建,因为在新组件中使用内置指令时存在未记录的干扰。对于一个应该快速成功地编译和部署的脚本来说,这就够了。真可惜
个字符