通过Angular 2服务传递数据

时间:2017-03-27 16:50:19

标签: angular2-services

我正在努力将数据从Angular服务传递到组件。我从一个简单的模型类(./cet.model)

开始
export class CetModel {
constructor(
    public waferDiameter: number = 10
    ) {}
}

然后定义一个角度服务(./cet.service);

import { CetModel } from './cet.model';

export class CetService {
    private cet: CetModel;

    getCet() {
    return this.cet;
    }      
}

相关的角度分量;

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'时,我收到错误;

“无法读取未定义的属性'waferDiameter'。”

我哪里错了?

由于

1 个答案:

答案 0 :(得分:2)

更改 cet.service 中的代码,如下所示:

import { CetModel } from './cet.model';

    export class CetService {
        private cet = new CetModel();

        getCet() {
        return this.cet;
        }      
    }

您尚未创建模型对象。这就是为什么this.cet返回undefined并且waferDiameter未定义的原因。