angular 4.0 中如何隐藏和显示
How hide and show in angular 4.0
我正在尝试切换 angular 中的菜单 4. 我有 2 个独立的组件。一个用于 header 布局,第二个用于菜单列表。我在 header 布局中编写了点击图标切换功能,我试图隐藏和显示菜单列表。但这对我不起作用。
以下是我的代码:
app.navbarComponent.html 文件:
<header id='sv_header'>
<div class='row'>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 col'>
<a href='' class='logo'>
<img src='{{ logo }}' alt='Savaari' />
</a>
</div>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 col supportHolder'>
<img src='{{ customercare }}' alt='24X7 Customer Care Support' />
</div>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 text-right col loginHolder'>
<a class='user_login' (click)='toggleMenu()'>
<img src='{{ signin }} ' alt='signin' />
<span>Sign In</span>
</a>
</div>
</div>
</header>
app.navbarComponent.ts 文件:
import { Component } from '@angular/core';
@Component({
selector: 'navbar',
templateUrl: './app.navbarComponent.html'
})
export class NavbarComponent {
menulist: boolean = false;
logo = '../assets/img/logo.png';
customercare = '../assets/img/cc-support.png';
signin = '../assets/img/signin.png';
toggleMenu(): void {
this.menulist = !this.menulist;
alert(this.menulist);
}
}
app.menuComponent.html 文件:
<div class='menulist' >
<ul>
<li *ngFor="let menu of menus" [HIDDEN]="!menulist">
<a href="{{menu.href}}">
{{menu.name}}
</a>
</li>
</ul>
</div>
谁能帮我解决这个问题。
提前致谢。
<div class='menulist'>
<ul *ngIf="!menulist">
<li *ngFor="let menu of menus">
<a href="{{menu.href}}">
{{menu.name}}
</a>
</li>
</ul>
</div>
不能将 *ngIf 和 *ngFor 放在同一个元素上 - angular 不喜欢
问题已解决。
因为我们使用了两个不同的组件。我们要写一个服务来监听点击事件。
首先我们必须绑定点击事件到INJECTOR,它被称为Service 在 angular 中。在使用 Injector 帮助之后,我们将在单击图标时调用另一个组件中的函数。
我觉得正确答案不正确。 Angular有两种隐藏数据的方法:*ngIf
和[hidden]
。
*ngIf是一个结构指令,它creates/destroys里面的内容是DOM.
[hidden] 只是 hides/shows 带有 css 的内容(adding/removing display:none
到元素的样式)。
*ngIf 重绘 DOM,这会影响您的项目的性能。在这种情况下,我建议使用 [hidden],因为你经常操纵 DOM
我正在尝试切换 angular 中的菜单 4. 我有 2 个独立的组件。一个用于 header 布局,第二个用于菜单列表。我在 header 布局中编写了点击图标切换功能,我试图隐藏和显示菜单列表。但这对我不起作用。
以下是我的代码:
app.navbarComponent.html 文件:
<header id='sv_header'>
<div class='row'>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 col'>
<a href='' class='logo'>
<img src='{{ logo }}' alt='Savaari' />
</a>
</div>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 col supportHolder'>
<img src='{{ customercare }}' alt='24X7 Customer Care Support' />
</div>
<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 text-right col loginHolder'>
<a class='user_login' (click)='toggleMenu()'>
<img src='{{ signin }} ' alt='signin' />
<span>Sign In</span>
</a>
</div>
</div>
</header>
app.navbarComponent.ts 文件:
import { Component } from '@angular/core';
@Component({
selector: 'navbar',
templateUrl: './app.navbarComponent.html'
})
export class NavbarComponent {
menulist: boolean = false;
logo = '../assets/img/logo.png';
customercare = '../assets/img/cc-support.png';
signin = '../assets/img/signin.png';
toggleMenu(): void {
this.menulist = !this.menulist;
alert(this.menulist);
}
}
app.menuComponent.html 文件:
<div class='menulist' >
<ul>
<li *ngFor="let menu of menus" [HIDDEN]="!menulist">
<a href="{{menu.href}}">
{{menu.name}}
</a>
</li>
</ul>
</div>
谁能帮我解决这个问题。
提前致谢。
<div class='menulist'>
<ul *ngIf="!menulist">
<li *ngFor="let menu of menus">
<a href="{{menu.href}}">
{{menu.name}}
</a>
</li>
</ul>
</div>
不能将 *ngIf 和 *ngFor 放在同一个元素上 - angular 不喜欢
问题已解决。
因为我们使用了两个不同的组件。我们要写一个服务来监听点击事件。
首先我们必须绑定点击事件到INJECTOR,它被称为Service 在 angular 中。在使用 Injector 帮助之后,我们将在单击图标时调用另一个组件中的函数。
我觉得正确答案不正确。 Angular有两种隐藏数据的方法:*ngIf
和[hidden]
。
*ngIf是一个结构指令,它creates/destroys里面的内容是DOM.
[hidden] 只是 hides/shows 带有 css 的内容(adding/removing display:none
到元素的样式)。
*ngIf 重绘 DOM,这会影响您的项目的性能。在这种情况下,我建议使用 [hidden],因为你经常操纵 DOM