通过嵌入插入的组件的 Angular 2+ 调用函数(ng-content)

2023-12-24

我有一个模态窗口组件,并且我正在通过嵌入插入模态内容组件<ng-content></ng-content>。我需要从模态组件调用模态内容中的函数。在本例中,它是重置模式内容的状态。如何获取对模态内容的引用以便我可以调用它的函数之一?或者是否有更好的方式与我的子内容组件进行通信?

更新:我正在嵌入不同的组件,所以我确实需要一种方法来获取引用,而不知道嵌入的内容是什么类型。

我已经尝试了几种找到的解决方法,但我没有任何运气。如果有人可以提供一个 plunkr,那会有很大帮助。


您应该能够使用 ContentChild 装饰器来访问它。

Parent:

import {ChildComponent} from "../child-path";

export class ParentComponent {
    @ContentChild(ChildComponent) childComponent: childComponent;
    var parentVar = "data";

    ...

    ngAfterViewInit(){
        childComponent.callYourFunction(parentVar);
    }
}

更新:请注意,我最初有“ViewChild”——这是原始链接。

在这里查看更多内容:http://learnangular2.com/viewChild/ http://learnangular2.com/viewChild/

EDIT:

请参阅 Gunter 的评论 - 他认为 ViewChild 在这种情况下不起作用,这是正确的。 ContentChild 是一个类似但正确的答案。

https://angular.io/docs/ts/latest/api/core/index/ContentChild-decorator.html https://angular.io/docs/ts/latest/api/core/index/ContentChild-decorator.html

EDIT 2:

对于 ng-content 类型的问题,看起来也许你可以这样做:

在父级中:

<parent-component>
    <child-component #child></child-component>
</parent-component>


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

通过嵌入插入的组件的 Angular 2+ 调用函数(ng-content) 的相关文章

  • Angular 4 过滤器搜索自定义管道

    所以我试图构建一个自定义管道来在 ngFor 循环中执行多个值的搜索过滤器 我花了几个小时寻找一个好的工作示例 其中大多数都是基于以前的版本 并且似乎不起作用 所以我正在构建管道并使用控制台为我提供值 但是 我似乎无法显示输入文本 以下是我
  • 如何在 Vue SFC 中使用 Typescript 全局类型声明?

    In Vue2 Typescript我有的项目global d ts具有某些类型的文件 例如 全局 d ts type Nullable
  • ES6继承:使用`super`访问父类的属性

    JavaScript 的super关键字 当我在 Chrome Babel TypeScript 上运行代码时 得到了不同的结果 我的问题是哪个结果是正确的 规范的哪一部分定义了这种行为 下面的代码 class Point getX con
  • Angular 提供的服务在 VS forRoot 中

    我想知道这两个代码块是否等效 我可以用吗providedIn与以下结果相同forRoot Injectable providedIn root export class MyService constructor vs Injectable
  • 基于浏览器位置/设置的 Angular 2 Datepipe 格式

    有没有办法使 datepipe 动态化 以便如果它是美国浏览器 则 d atepipe 返回美国格式 yyyy MM dd 而当它是欧洲浏览器时 它返回欧洲格式 dd MM yyyy Thanks 这可能很困难 尤其是在使用 aot 时 它
  • Angular 8 输入验证仅接受数字

    我正在创建动态输入字段 它将接受所有类型值 我需要限制只输入数字 模板 tr tr
  • 无法读取未定义的“触及”属性

    为什么我会收到此错误无法读取未定义的属性 为什么无法读取formName controls email touched但它能够阅读formName get custDetails touched
  • 避免在 ES6 的函数内定位 this 的对象作用域

    例如 我正在使用 D3 js 运行一个项目 导入特定模块并调用它们的函数 Setup TypeScript ES6 导入特定的 D3 组件 角6 我有一个对象 在本例中是一个角度指令 并在 SVG 画布上绘制一些圆圈 并希望它们在拖动事件上
  • TypeScript 第 3 阶段字段装饰器

    我目前正在尝试将字段装饰器从实验性 TypeScript 更新到第 3 阶段 它所做的只是在字段值更新时发送通知 旧的实现如下所示 function watchChange
  • “同态映射类型”是什么意思?

    我在一些 TypeScript PR 中看到过 同态映射类型 这个术语 这是一个例子 https github com microsoft TypeScript pull 21919 https github com microsoft T
  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • TypeScript 编译速度极慢 > 12 秒

    只是把它放在那里看看其他人是否也遇到这个问题 我已经使用 webpack 作为我的构建工具 使用 typescript 构建了一个 Angular 2 应用程序 一切都运行良好 但是我注意到 typescript 编译超级超级慢 我现在只有
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • Plesk Windows 部署 Node.js

    我创建了一个以 Node js 作为后端的 Angular 项目 这是服务器文件结构 Home directory httpdocs node hm dist browser folder server folder server js p
  • 在 angular2 中过滤数组

    我正在研究如何在 Angular2 中过滤数据数组 我研究过使用自定义管道 但我觉得这不是我想要的 因为它似乎更适合简单的表示转换 而不是过滤大量数据 数组排列如下 getLogs Array
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • 类型“typeof import("/home/kartik/Desktop/Ecommerce/ecommerce/node_modules/firebase/index")”上不存在属性“auth”。 TS(2339)

    我是 FireBase 的初学者 我正在尝试使用 Angular 通过 FireBase 实现 Google 登录 我在 auth 时收到上述错误 我特此附上login component ts和package json package l
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • Typescript 函数接口重载

    我有以下代码 interface MySecondInterface a type A interface MyInterface val1 string val2 string MySecondInterface a

随机推荐