클릭 이벤트를 사용하여 클래스를 설정/해제하려고 할 때, 실행중인 문제는 클래스를 생성하는 동안 부모 구성 요소에 클릭 이벤트가있는 것입니다. 하위 구성 요소에 있습니다. 나는 @Input() 장식을 사용하여 클래스와 아이를 초기화 할 수 있어요하지만 클래스는 [class.scroll보기] = "[isClassVisible에서 괄호를 제거해야 나중에Angular2 부모 구성 요소에서 click 이벤트를 사용하여 자식 구성 요소의 클래스를 전환하십시오.
import { Component, AfterViewInit, Input, OnInit } from '@angular/core';
import { SidebarComponent } from './components/sidebar/sidebar.component';
@Component({
moduleId: module.id,
selector: 'body',
host: {
'[class.navMdClass]' : 'navMdClass',
'[class]' : 'classNames'
},
templateUrl:'app.component.html' ,
directives:[SidebarComponent],
})
export class AppComponent implements OnInit {
private isClassVisible:boolean;
constructor() {
}
ngOnInit() {
this.isClassVisible=true;
}
toggleClass() {
this.isClassVisible = !this.isClassVisible;
}
}
//Child component
import { Component, Input, EventEmitter, OnInit,SimpleChange } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'sidebar',
templateUrl:'sidebar.component.html'
})
export class SidebarComponent implements OnInit{
@Input() isClassVisible:boolean;
ngOnInit() { }
}
//Parent click event triggers toggleClass
<div class="nav toggle">
<a (click)="toggleClass();" href="#" id="menu_toggle"><i class="fa fa-bars"></i></a>
</div>
//Child div where target class is
<div class="left_col" [class.scroll-view]="[isClassVisible]" >
클래스를 초기화 할 수없고 해당 토글이 적용되지 않습니다. – Kayoti
앱에 기수가 있습니까? –
내 생각에 plunker는 계속 충돌합니다. angle2 quickstart repo를 사용하고 있으며 간단한 코드를 추가했습니다. – Kayoti