Angular 2 同级组件之间的通信

2023-11-27

我试图遵循这个答案,但它太令人困惑了Angular 2 兄弟组件之间的事件捕获

我想调用一个方法子组件 1当点击某物时子组件 2

子组件 2 发出一个名为 trackClick 的事件。

父组件:

<div>

    <audio-player></audio-player>

    <audio-albums></audio-albums>

</div>

子组件 1(音频播放器)

// Don't know what to do here, want to call this function

trackChanged(track){
    console.log("YES!! " + track);
}

子组件 2(音频专辑)

<li class="track" (click)="playTrack(track)"> </li>

@Output() trackClick = new EventEmitter<any>();

playTrack(track):void{
    console.log("calling playTrack from child 2:" + track);  
    this.trackClick.next([track]);
}

你不能这样做。首先,您必须使用 @ViewChild(Child2) 在父级中获取 child2 (通过组件而不是字符串选择 ViewChild 很重要)。那么你必须在parent中捕获事件并在child2上执行你想要的任何方法。或多或少是这样的:

import { AudioAlbumsComponent }  from '...';
import { AudioPlayerComponent }  from '...';

@Component({ 
  template: `
    <div>
      <audio-player></audio-player>
      <audio-albums (trackClick)="onTrackClicked($event)"></audio-albums>
    </div>`,
  directives: [AudioPlayerComponent, AudioAlbumsComponent],
}) 

export class Parent {
  @ViewChild(AudioPlayerComponent) private audioPlayer: AudioPlayerComponent;

  onTrackClicked($event) {
    this.audioPlayer.trackChanged($event);
  }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 同级组件之间的通信 的相关文章

随机推荐

  • Python 将轴上的日期转换为月份

    我有一个时间序列 我想逐年绘制 我希望数据是每日的 但轴将每月显示为 一月 二月 等 目前我可以获得每日数据 但轴是 1 366 一年中的某一天 或者我可以将每月轴设置为 1 2 3 等 通过将索引更改为 df index month 但数
  • 如何在 Next.js 静态站点生成中获取 URL 查询字符串?

    我想从 Next js 静态站点生成的 URL 获取查询字符串 我在 SSR 上找到了一个解决方案 但我需要一个用于 SSG 的解决方案 Thanks import useRouter from next router import use
  • C# 部署我的应用程序 - 仅从 Web 单击一次

    所以我用 C 开发了我的应用程序 我已准备好部署它 我想让用户始终从我的网站启动它 以便他们始终获得更新 无需安装等 ClickOnce 是执行此操作的正确方法吗 我尝试将 ClickOnce 部署到我的服务器上 但我发现了一些事情 1 用
  • 开源 Telnet Java API

    是否有适用于 Java 的开源 telnet API 库 例如 Python telnetlib 我需要使用 telnet 连接到服务器并从 Java 程序中执行一些命令 我更喜欢使用 Apache Commons Net 库 http c
  • 使用复选框绑定到具有强类型 MVC 视图的布尔列表列表字典

    我正在使用 MVC 4 Net 4 和 Visual Studio 2012 我正在尝试将一个相当复杂的模型与我的观点之一结合使用 但在使其正确绑定方面遇到了严重的困难 该模型用整数键和布尔列表列表值来包装字典 基本上 搜索是对由整数指示的
  • 位字节顺序如何影响 C 中的按位移位和文件 IO?

    Let L and B是两台机器 L订购它的bits从最低有效位 最低有效位 到 MSB 最高有效位 同时B命令 从 MSB 到 LSB 或者 换句话说 L使用 Little Endian 而B使用大尾数法bit 不要与字节排序相混淆 问题
  • 关闭实体框架 CTP5 中的对象缓存

    我无法弄清楚 CTP 5 中实体框架代码优先的内容 它正在缓存对象 但我不希望它这样做 例如 我加载一个加载对象的页面 使用 ASP NET MVC 站点 然后我去更改数据库 我重新加载页面 但更改没有反映出来 如果我终止该网站并重新运行它
  • iOS:键盘出现时禁用 UITableView 动画

    每个人都想在键盘弹出时移动 UITableView 但我正在寻找一种方法来禁用键盘弹出时光标的自动动画 当键盘弹出并导致 UITableView 滚动到光标 以避免阻塞它 时 我遇到了奇怪的抽动 颠簸 不稳定的滚动行为 我的每个 UITab
  • PHP 捕获 SimpleXMLElement 解析错误 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我有一个脚本可以解析一些 XML adf 内容 有时我
  • 如何在 Play 框架 2.0 (Java) 中重定向到外部 URL

    通过使用控制器中的redirect 方法似乎可以重定向到内部URL public static Result index return redirect routes Application tasks 但是我想重定向到控制器中的外部 UR
  • 在 Ubuntu OpenJDK 7 上启用密码

    我编写了以下 Java 程序来转储 JVM 中启用的密码 import java security KeyStore import javax net ssl KeyManagerFactory import javax net ssl S
  • const 引用必须在构造函数基类/成员初始值设定项列表中初始化

    我试图阻止对我正在编写的类的默认构造函数的访问 我希望其他人使用的构造函数需要对另一个对象的 const 引用 我已将默认构造函数设为私有 以防止其他人使用它 我收到默认构造函数的编译器错误 因为 const 引用成员变量未正确初始化 我该
  • 除 ffmpeg x264 之外的 H264 编码器

    我正在开发的 iPhone 应用程序会在特定的用户定义的时间间隔内连续捕获图像 我正在寻找一种将这些图像组合成 H264 编码视频的方法 我在 Google 上做了一些研究 看起来我必须在 iPhone 上使用 ffmpeg mencode
  • LINQ to SQL:多列左连接

    首先 我搜索了 google SO 检查了一些示例 但我没有设法编写正确的 linq 表达式 这就是我的工作 sql 查询的样子 select from Places p left join VoteLog v on p Id v Plac
  • 为什么我的应用服务的 Kudu 网站显示 503 服务不可用

    我在将容器部署到 Azure 中的应用程序服务时遇到问题 在发布管道中 我看到以下错误 调试 放置 https iagadsca01 cac app salesforcedownstream 01 iagadsca01 cac app sa
  • 在没有实际 Excel 的情况下使用 Microsoft.Office.Interop.Excel?

    我在用着Microsoft Office Interop Excel在 VB Net 中 以便将 xls 文件导出为 pdf 文件 这是我能找到的唯一方法 无需依赖在运行的计算机上安装第三方软件或使用昂贵的 Visual Studio 附加
  • Eclipse 声音池加载错误

    我正在尝试使用 Eclipse 开发一个 Android 图书馆管理软件 到目前为止 我的应用程序运行良好 在 Eclipse 模拟器中 但我遇到了一些困扰我的错误 尽管对功能没有明显影响 如果有人可以指导我 我将非常感激 错误 1 每当我
  • Ruby 中的循环位右移运算

    Ruby 中有右旋转位吗 或者请问我该怎么做 Thanks 一些事实 Ruby 有运算符 lt lt and gt gt 移位 但没有内置旋转运算符 你必须伪造它 Ruby s Fixnum类自动升级为Bignum当该值超过机器字大小时 这
  • 为什么我不能将 asp.net mvc 4 项目设置为 x64

    我有一个 VS2012 解决方案 可以简化如下 一个 asp net mvc 4 Web 应用程序 一个中间 C 类库项目和一个用于计算等的最终 C 库项目 该 Web 应用程序当前没有对其他项目的引用 并且在构建时配置为 任何 CPU 最
  • Angular 2 同级组件之间的通信

    我试图遵循这个答案 但它太令人困惑了Angular 2 兄弟组件之间的事件捕获 我想调用一个方法子组件 1当点击某物时子组件 2 子组件 2 发出一个名为 trackClick 的事件 父组件 div div