我正在学习角度2,我遵循本教程:tensor product 但输出和均衡器的整个部分都不起作用。 我没有得到任何错误,我无法弄清楚它为什么不起作用。
这是我的togglelink组件的代码:
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'app-togglelink',
templateUrl: 'togglelink.component.html',
styleUrls: ['togglelink.component.css']
})
export class TogglelinkComponent implements OnInit {
@Input() state:boolean = true;
@Output() onChange = new EventEmitter();
onClick(){
this.state = !this.state;
this.onChange.emit(this.state);
}
constructor() {}
ngOnInit() {
}
}
这是使用togglelink组件的firstpage组件的代码: 从' @ angular / core'中导入{Component,OnInit}; 从' ../ togglelink / togglelink.component';
导入{TogglelinkComponent}@Component({
moduleId: module.id,
selector: 'app-firstpage',
templateUrl: 'firstpage.component.html',
styleUrls: ['firstpage.component.css'],
directives: [TogglelinkComponent]
})
export class FirstpageComponent implements OnInit {
thetogglestate:boolean = false;
firsttitle = "the first title";
constructor() {}
ngOnInit() {
}
}
这是firstpage组件模板的代码: {{thetogglestate? '在' :'关闭'}}
</p>
<h2 *ngIf="thetogglestate">
{{firsttitle}}
</h2>
<p>
firstpage works!
</p>
当我手动更改thetogglestate它确实有效,所以我明白问题出在输出和eventemitter部分。
任何想法为什么?
最好的问候
答案 0 :(得分:2)
在firstpage.component.html
模板中,您需要为此事件注册一些处理以切换thetogglestate
变量的值。
类似的东西:
<app-togglelink (onChange)="thetogglestate = !thetogglestate"></app-togglelink>