Created
September 26, 2018 15:55
-
-
Save bioyeneye/e5f2826781ba12a148b26387c2efc7dc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export class BaseComponent { | |
| public scope: ComponentScope; | |
| constructor() { | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export abstract class ComponentScope { | |
| id: number; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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)