【发布时间】:2019-02-24 10:49:53
【问题描述】:
我有一个班级联系人:
export class Contact
{
public Id: string = '';
public FirstName: string = '';
public LastName: string = '';
public Email: string = '';
public Description: string = '';
public Members: Array<User> = [];
public Mute: boolean = false;
}
我有另一个类 SelectedContact 继承了这个类
export class SelectedContact extends Contact {
public skipMessages: number;
public hasMessages: boolean;
public canSendMessage: boolean;
}
我有一项服务是获取和设置 SelectedContacts
@Injectable()
export class ContactService
{
private contactList: Array<Contact> = [];
private selectedContactId: string;
public get SelectedContact(): SelectedContact
{
const contact: Contact = this.contactList.find((v) => v.Id === this.selectedContactId);
return contact ? contact : null;
}
public set SelectedContact(value: string | Contact): void
{
this.selectedContactId = typeof value === 'string' ? value as string : value.Id;
}
}
然后在我的组件的 ngOnInit() 中,我试图设置我的局部变量,但出现错误:
@Component({...})
export class RightSidebarComponent implements OnInit {
selectedContact: SelectedContact;
ngOnInit() {
this.selectedContact = this.contactService.SelectedContact;
}
}
我收到以下错误:“ERROR TypeError: Cannot set property selectedContact of [object Object] which has only a getter”,在上面的行中。
【问题讨论】:
标签: angular typescript