我正在尝试使用Angular中的类使我的生活更轻松,但到目前为止,它尚无法正常工作。以下是我的代码和收到的错误:
import { WizardData } from '../models/wizard-data';
export class WizardPage {
private type: String;
private data: WizardData;
public getType(){
return this.type;
}
public setType(type: String){
this.type = type;
}
public getData(){
return this.data;
}
public setData(data: WizardData){
this.data = data;
}
}
和
import { Component, OnInit } from '@angular/core';
import { WizardPage } from '../../shared/models/wizard-page';
@Component({
selector: 'app-wizard-base',
templateUrl: './wizard-base.component.html',
styleUrls: ['./wizard-base.component.scss']
})
export class WizardBaseComponent implements OnInit {
wizardPage: WizardPage = new WizardPage();
wizardPage.setType("address");
constructor() { }
ngOnInit() {}
}
这在行上给出了错误
wizardPage.setType("address");
即(CLI):
ERROR in src/app/wizard/wizard-base/wizard-base.component.ts(14,13): error TS1005: ';' expected.
src/app/wizard/wizard-base/wizard-base.component.ts(14,22): error TS1003: Identifier expected.
在Visual Studio代码中:
[ts] Duplicate identifier 'wizardPage'.
[ts] Subsequent property declarations must have the same type. Property 'wizardPage' must be of type 'WizardPage', but here has type 'any'.
(property) WizardBaseComponent.wizardPage: WizardPage
有人知道为什么这不起作用吗?
谢谢!
答案 0 :(得分:4)
您可以直接在类中声明类的成员,但不能直接访问它们。基本上,您可以在类的任何方法内部访问变量,并且该变量将属于this
(上下文)。在这里,您应该调用ngOnit
生命周期挂钩。
ngOnInit() {
this.wizardPage.setType("address");
}
在指定子类或继承类中变量的可访问性方面,可以使用访问说明符,可以是public
,protected
,private
。这些访问说明符的工作方式类似于它们在OOP
,C#
等Java
语言中的使用方式。感谢@Florian
的评论。