Skip to content

Instantly share code, notes, and snippets.

@bioyeneye
Created September 26, 2018 15:55
Show Gist options
  • Select an option

  • Save bioyeneye/e5f2826781ba12a148b26387c2efc7dc to your computer and use it in GitHub Desktop.

Select an option

Save bioyeneye/e5f2826781ba12a148b26387c2efc7dc to your computer and use it in GitHub Desktop.
export class BaseComponent {
public scope: ComponentScope;
constructor() {
}
}
export abstract class ComponentScope {
id: number;
}
import { Component, OnInit } from '@angular/core';
import { ComponentScope, BaseComponent } from '../common/base.component';
abstract class ServerComponentScope extends ComponentScope {
isDisabled: boolean;
abstract alert(event: any);
abstract getColor(): string;
}
@Component({
selector: 'app-server',
templateUrl: './server.component.html',
styleUrls: ['./server.component.css']
})
export class ServerComponent extends BaseComponent implements OnInit {
public model: ServerComponentScope;
constructor() {
super();
}
ngOnInit() {
this.model = this.scope as ServerComponentScope;
}
getColor(): string {
return 'red';
}
alert(event: any) {
this.model.id = 10;
console.log(this.model.id);
}
}
@bioyeneye

Copy link
Copy Markdown
Author

so when i call the alert method i get this error
ERROR TypeError: Cannot set property 'id' of undefined
at ServerComponent.push../src/app/server/server.component.ts.ServerComponent.alert (server.component.ts:31)
at Object.eval [as handleEvent] (ServerComponent.html:3)
at handleEvent (core.js:10258)
at callWithDebugContext (core.js:11351)
at Object.debugHandleEvent [as handleEvent] (core.js:11054)
at dispatchEvent (core.js:7717)
at core.js:8161
at HTMLButtonElement. (platform-browser.js:995)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:3815)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment