通过 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.cetreturns undefined 而你得到 waferDiameter undefined.