通过 Angular 2 服务传递数据
Passing data via an Angular 2 service
我正在努力将数据从 Angular 服务传递到组件。我从一个简单的模型开始 class (./cet.model)
export class CetModel {
constructor(
public waferDiameter: number = 10
) {}
}
然后定义一个angular服务(./cet.service);
import { CetModel } from './cet.model';
export class CetService {
private cet: CetModel;
getCet() {
return this.cet;
}
}
以及关联的 angular 组件;
import { Component } from '@angular/core';
import { CetService } from './cet.service';
import { CetModel } from './cet.model';
@Component({
selector: 'cet-input',
templateUrl: './cet-input.component.html',
providers: [ CetService ]
})
export class CetInputComponent {
constructor(public cetService: CetService){}
cet: CetModel = this.cetService.getCet();
waferDiameter = this.cet.waferDiameter
}
代码构建没有错误,但是当我尝试在组件模板中显示变量 'waferDiameter' 时,我收到错误;
"Cannot read property 'waferDiameter' of undefined".
我哪里错了?
谢谢
按如下所示更改 cet.service 中的代码:
import { CetModel } from './cet.model';
export class CetService {
private cet = new CetModel();
getCet() {
return this.cet;
}
}
您还没有创建模型对象。这就是为什么 this.cet
returns undefined 而你得到 waferDiameter
undefined.
我正在努力将数据从 Angular 服务传递到组件。我从一个简单的模型开始 class (./cet.model)
export class CetModel {
constructor(
public waferDiameter: number = 10
) {}
}
然后定义一个angular服务(./cet.service);
import { CetModel } from './cet.model';
export class CetService {
private cet: CetModel;
getCet() {
return this.cet;
}
}
以及关联的 angular 组件;
import { Component } from '@angular/core';
import { CetService } from './cet.service';
import { CetModel } from './cet.model';
@Component({
selector: 'cet-input',
templateUrl: './cet-input.component.html',
providers: [ CetService ]
})
export class CetInputComponent {
constructor(public cetService: CetService){}
cet: CetModel = this.cetService.getCet();
waferDiameter = this.cet.waferDiameter
}
代码构建没有错误,但是当我尝试在组件模板中显示变量 'waferDiameter' 时,我收到错误;
"Cannot read property 'waferDiameter' of undefined".
我哪里错了?
谢谢
按如下所示更改 cet.service 中的代码:
import { CetModel } from './cet.model';
export class CetService {
private cet = new CetModel();
getCet() {
return this.cet;
}
}
您还没有创建模型对象。这就是为什么 this.cet
returns undefined 而你得到 waferDiameter
undefined.