mapsuscirber,如何访问组件变量?
mapsuscirber, how to access to component variables?
我有一个表格,我用一个 suscription 控制变化:
<form #f="ngForm">
<mat-card-content>
<mat-input-container>
<input matInput [(ngModel)]="id" name="id" placeholder="id" (ngModelChange)="elementChanged$.next($event)"/>
</mat-input-container>
</mat-card-content>
</form>
export class myComponent implements OnInit {
dataToGet: string;
formChanged$: Observable<boolean>;
elementChanged$: Subject<any> = new Subject<any>();
elementSubscription: Subscription;
constructor() {
this.elementSubscription = this.elementChanged$
.debounceTime(500)
.map(this.formHaveChanged)
.subscribe(haveChanged => this.formChanged$ = haveChanged)
}
formHaveChanged(): Observable<boolean> {
this.dataToGet -> fails because of this is mapSuscriber
return Observable.of(true)
}
}
所以我的问题很清楚,当我在 formHaveChanged() 函数中时 "this" 是 mapSuscriber 而不是 myComponent,我需要访问 mycomponent 变量,但我无法获取它,我该怎么办?
.map(this.formHaveChanged.bind(this))
或
.map(() => this.formHaveChanged())
this.formHaveChanged
是未绑定函数。您无权在未绑定函数中访问此内容。
我有一个表格,我用一个 suscription 控制变化:
<form #f="ngForm">
<mat-card-content>
<mat-input-container>
<input matInput [(ngModel)]="id" name="id" placeholder="id" (ngModelChange)="elementChanged$.next($event)"/>
</mat-input-container>
</mat-card-content>
</form>
export class myComponent implements OnInit {
dataToGet: string;
formChanged$: Observable<boolean>;
elementChanged$: Subject<any> = new Subject<any>();
elementSubscription: Subscription;
constructor() {
this.elementSubscription = this.elementChanged$
.debounceTime(500)
.map(this.formHaveChanged)
.subscribe(haveChanged => this.formChanged$ = haveChanged)
}
formHaveChanged(): Observable<boolean> {
this.dataToGet -> fails because of this is mapSuscriber
return Observable.of(true)
}
}
所以我的问题很清楚,当我在 formHaveChanged() 函数中时 "this" 是 mapSuscriber 而不是 myComponent,我需要访问 mycomponent 变量,但我无法获取它,我该怎么办?
.map(this.formHaveChanged.bind(this))
或
.map(() => this.formHaveChanged())
this.formHaveChanged
是未绑定函数。您无权在未绑定函数中访问此内容。