【问题标题】:Angular 2 Inheritance componentsAngular 2 继承组件
【发布时间】:2017-08-06 13:24:10
【问题描述】:

我有一个 basewindow.component,它将成为我所有组件的基础组件。这个 basewindow.component 将具有保存、删除等按钮,并且在单击“新建”按钮时,我想在执行后调用 basewindow 函数ufbNew() 应该执行父窗口函数ufNew()。请检查我的代码并帮助我是否正确执行。我可以调用基本函数,但不能调用父函数

//basewindow.component/// 


import { Component } from '@angular/core';

@Component({
    selector: 'basewindow',
    templateUrl: './Basewindow.component.html',
    styleUrls: ['./Basewindow.component.css']
})
export class BasewindowComponent {

/////////////////////// User Base Functions ///////////////////

    ufbNew() {

       this.ufNew();
    }
    ufbSave() {
        this.ufSave();
    }

    /////////////////////// User Functions for parent ///////////////////

    ufNew() {
      alert("I m In Base ufbNew")  
    }
    ufSave() {
    }

}


 //// Basewindow.component.html

<div class="container">
    <h1>Hero Form</h1>
    <form>
        <div class="form-group"> 

            <button (click)="ufbNew()">New</button>
            <button (click)="ufbSave()">Save</button> 

        </div>

    </form>
</div>


/////////////////////////// AccountsCategory.Component (Parent 1) ////



import { Component } from '@angular/core'; 
import { BasewindowComponent } from '../base/basewindow.component';

@Component({
    selector: 'app',
    templateUrl: './AccountsCategory.component.html' 
})
export class AccountsCategory extends BasewindowComponent {


   /////////////////////// User Functions for parent ///////////////////
    ufNew() {
      alert("I m in Acounts category (parent)")    
    }
    ufSave() {
    }
}


 //////////// AccountsCategory.component.html /////////////

<basewindow> </basewindow>

我的目的是重用基础组件对象、函数并在需要时从子组件中覆盖。 请参阅 plnkr 中的测试应用程序

https://plnkr.co/edit/bVxt4GjNXwIg7pDbR4sE?p=preview

【问题讨论】:

标签: asp.net angularjs asp.net-mvc angular asp.net-core


【解决方案1】:

使用这个

abstract class Animal {
    //OTHER STUFF

    abstract ufSave(): void;

    //OTHER STUFF
}

【讨论】:

  • 我的目的是重用基础组件对象、函数并在需要时从子级覆盖,抽象类在我的情况下不起作用?
  • 所以基本上你想调用父方法?
  • 先父后子
  • 将 super.someMethod() 添加到子方法的开头
猜你喜欢
  • 2018-04-20
  • 2016-11-13
  • 2018-01-16
  • 2019-07-02
  • 2020-10-07
  • 2016-12-15
  • 2017-10-19
  • 2017-03-23
  • 1970-01-01
相关资源
最近更新 更多