0

我想訪問從父類到子類的方法。Angular2從另一個類訪問函數/變量

我的父類是

export class Parent{ 
    constructor() {} 
    present() { 
    } 
} 

和我的孩子類:

export class Child { 
    constructor() {} 
    submit(){ 
     this.toast.present(); 
    } 
} 

我想打電話給本()從父類中的子類中的方法。

+0

在何種意義上是這些父母與子女班?父母是否知道孩子是誰? –

+0

您是否檢查了[此鏈接](https://plnkr.co/edit/Qw11UOP5WxEdwRXZYfo4?p=preview)? –

+0

根據您的代碼,您想從Child中的方法訪問父級中的present()方法。是嗎?並且,假設ChildComponent在視圖中的ParentComponent中是您的示例? –

回答

0

您可以使用關鍵字super兒童

class Parent{ 
    constructor() {} 
    present() { 
     console.log("I am from parent") 
    } 
} 

class Child extends Parent{ 
    constructor() { 
     super(); 
    } 

    submit(){ 
     super.present(); 
    } 
} 

let x = new Child(); 
x.submit(); 
0

調用家長的方法,你可以發出使用@Output裝飾的事件。

你的孩子組成應該是:

import { Component, Input, Output, EventEmitter } from '@angular/core'; 
@Component({ 
selector: 'child', 
templateUrl: 'child.html', 
}) 

export class Child { 
@Output() notify: EventEmitter<string> = new EventEmitter<string>(); 

constructor() {} 
submit(){ 
    this.notify.emit(); 


    } 
} 

並在父類的模板:

<child (notify)="toast.present();"></child > 
+0

感謝它的工作 –

0
  1. ECMA 6.0已經推出延伸關鍵字其中的工作原理完全類似於JAVA 。 此關鍵字用於通過創建可以訪問父類所有成員的子類來擴展類。

  2. 要訪問Parent類的任何成員,我們使用「super」關鍵字。

    代碼附加如下:

    類父{ 構造函數(){

      } 
    
         present() { 
    
         } 
        } 
    
    
         class Child extends Parent { 
          constructor() { 
          super(); 
          } 
    
          submit(){ 
          super.present(); // here **super** represents an instance of Parent class 
          } 
    
         }