javascript - 如何在 Angular 组件之间调用动态函数

标签 javascript angular

我是 Angular 新手,我计划在我的应用程序上创建一个动态函数。我想要一个动态函数(例如,调用父组件时,子组件上的buttonclick函数将执行console.log,而当调用parent2组件时,buttonclick函数将执行警报对话框)。是否可以为每个组件调用具有不同实现的动态函数?我该怎么做?

child.component.ts

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

@Component({
  selector: 'app-child',
  template : '<button click()="dynamicFunction()">Click!</button>',
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {

  constructor() { }

  dynamicFunction(){
     //do nothing
  }  

  ngOnInit() {  

  }

}

parent.component.ts

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

@Component({
  selector: 'app-parent',
  template : '<app-child></app-child>',
  styleUrls: ['./parent.component.css']
})
export class ParentComponent implements OnInit {

  constructor() { }

  dynamicFunction(){
      console.log('parent 1 clicked');
  }  

  ngOnInit() {  

  }

}

parent2.component.ts

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

@Component({
  selector: 'app-parent2',
  template : '<app-child></app-child>',
  styleUrls: ['./parentTwo.component.css']
})
export class ParentTwoComponent implements OnInit {

  constructor() { }

  dynamicFunction(){
      alert('parent 2 was called');
  }  

  ngOnInit() {  

  }

}

最佳答案

在 Angular 使用服务中共享的功能

在 Angular 中,您可以创建服务并在所有功能中作为提供者共享该服务。服务中的方法/函数可以从任何组件(包括子组件或非子组件)调用

关于javascript - 如何在 Angular 组件之间调用动态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58193703/

相关文章:

javascript - 将鼠标悬停在列表上时传单打开弹出窗口

javascript - Angular 2 文档/是否有 angular 2 的 ngdocs?

JavaScript onChange 下拉菜单

javascript - 绑定(bind)下拉(选择)列表的初始/默认值

javascript - 如何修复 react 表标题和复选框?

javascript - 如何在 HTML 页面上显示 JS 循环的输出

angular - 是否可以将服务注入(inject) apollo-client 的中间件?

javascript - 使用 Gulp 根据目录名称连接和重命名文件

angular - 使用 @angular/google-maps 将自定义样式添加到 Angular map

javascript - vscode : [ts] Experimental support for decorators is a feature that is subject to change