Angular Nativescript 可见性默认为 true,即使变量已初始化
Angular Nativescript visibility defaults to true, even when variable is initialized
有没有办法默认 "hide" Nativescript 中的元素?
我的组件中有
export class HouseholdContactComponent{
private isLoading = true
}
在我的 xml
<StackLayout [visibility]="isLoading ? 'collapse' : 'visible'">
<Label text="Hi there"></Label>
</StackLayout>
使用此代码,屏幕会闪烁 "Hi there" 消息然后消失。
与其使用 [可见性] 属性,不如使用 Angular *ngIf
指令。
<StackLayout *ngIf="!isLoading">
<Label text="Hi there"></Label>
</StackLayout>
附带说明一下,为了绑定到属性 属性 并将其绑定到插值 Angular,您需要在它前面加上前缀 attr
,例如您会需要写 [attr.visibility]
而不仅仅是 [visibility]
.
使用*ngIf directive。如果变量值为 true
.
,它将呈现
例如:
//HTML
<Button text="Show/hide block" (tap)="onTap()" class="btn btn-primary btn-active"></Button>
<GridLayout *ngIf="isVisible" class="bg-primary" borderRadius="2" height="300"></GridLayout>
//Component
...
onTap() {
if (this.isVisible) {
this.isVisible = false;
} else {
this.isVisible = true;
}
}
...
有没有办法默认 "hide" Nativescript 中的元素?
我的组件中有
export class HouseholdContactComponent{
private isLoading = true
}
在我的 xml
<StackLayout [visibility]="isLoading ? 'collapse' : 'visible'">
<Label text="Hi there"></Label>
</StackLayout>
使用此代码,屏幕会闪烁 "Hi there" 消息然后消失。
与其使用 [可见性] 属性,不如使用 Angular *ngIf
指令。
<StackLayout *ngIf="!isLoading">
<Label text="Hi there"></Label>
</StackLayout>
附带说明一下,为了绑定到属性 属性 并将其绑定到插值 Angular,您需要在它前面加上前缀 attr
,例如您会需要写 [attr.visibility]
而不仅仅是 [visibility]
.
使用*ngIf directive。如果变量值为 true
.
例如:
//HTML
<Button text="Show/hide block" (tap)="onTap()" class="btn btn-primary btn-active"></Button>
<GridLayout *ngIf="isVisible" class="bg-primary" borderRadius="2" height="300"></GridLayout>
//Component
...
onTap() {
if (this.isVisible) {
this.isVisible = false;
} else {
this.isVisible = true;
}
}
...