我的angular 2项目中有2个组件。 第一个组件是:
import { Component, OnInit, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'second-component',
template: '<div><div>'
})
export class SecondComponent implements OnInit{
@Output() changeDetect = new EventEmitter<Boolean>();
private value: boolean;
ngOnInit() {
this.value = false;
this.doSomething();
}
doSomething(): void {
if (2 > 1) {
this.value = true;
}
}
changeDetection() {
this.changeDetect.emit(this.value);
}
}
我需要做的是,我需要在第二个组件中发送this.value
值。
例如,方法doSomething()
做了一些更改this.value
,不管是对还是错,
第二部分:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'first-component',
template: '
<div>FIRST COMPONENT<div>
<second-component (changeDetect)="changes($event)"></second-component>
<span>{{_message}}
</span>'
})
export class FirstComponent implements OnInit {
private _change: boolean;
private _message: string;
ngOnInit() {
}
changes(event) {
// Here i want to get boolean value from the first component to do something like below
if (event === true) {
message = 'true';
}
}
}
我知道我的问题很糟糕,但我希望你只是明白我的意思。
我会为任何建议感到高兴,因为我完全迷失了。
答案 0 :(得分:0)
在这种情况下,您需要手动发出该值
doSomething(): void {
if (2 > 1) {
this.value = true;
this.changeDetection();
}
}
答案 1 :(得分:0)
我认为问题在于您无法访问所发出值的属性。
changes(event) {
// Here i want to get boolean value from the first component to do something like below
if (event.value === true) {
message = 'true';
}
}
当您这样做:
if (event === true)
与以下相同:
if (event) {
您正在检查它不是null / undefined。
也正如亚历山大建议的那样,您必须连接:
changeDetection() {
this.changeDetect.emit(this.value);
}
如果尚未使用前端/角度代码,请转到事件处理程序。
希望有帮助。