首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从angular 7中的孙子组件调用方法

在Angular 7中,可以通过使用@ViewChild装饰器来从孙子组件调用方法。

首先,在父组件中,使用@ViewChild装饰器来获取孙子组件的实例。在父组件的类中,声明一个ViewChild属性,并指定孙子组件的类型。例如,假设孙子组件的名称为GrandchildComponent:

代码语言:txt
复制
import { Component, ViewChild } from '@angular/core';
import { GrandchildComponent } from './grandchild.component';

@Component({
  selector: 'app-parent',
  template: `
    <app-child></app-child>
  `
})
export class ParentComponent {
  @ViewChild(GrandchildComponent) grandchild: GrandchildComponent;

  callGrandchildMethod() {
    this.grandchild.someMethod();
  }
}

然后,在孙子组件中,定义一个公共方法,供父组件调用。例如,假设孙子组件中有一个名为someMethod的方法:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-grandchild',
  template: `
    <p>Grandchild Component</p>
  `
})
export class GrandchildComponent {
  someMethod() {
    console.log('Method called from grandchild component');
  }
}

最后,在父组件的模板中,通过调用父组件的方法来触发孙子组件的方法。例如,在父组件的模板中添加一个按钮,并绑定到父组件的callGrandchildMethod方法:

代码语言:txt
复制
<button (click)="callGrandchildMethod()">Call Grandchild Method</button>

当点击按钮时,父组件的callGrandchildMethod方法会被调用,从而触发孙子组件的someMethod方法。

这是一个简单的示例,展示了如何从Angular 7中的孙子组件调用方法。根据具体的业务需求,你可以在实际项目中进行适当的调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angular2 返回时组件生命周期函数不被调用解决方法

    这两天使用 Angular2 遇到一个 @angular/router bug: 症状 @angular/router 版本 3.0.0-beta.2 使用 safari 浏览器,iOS 都可以...打开 Angular2 官方范例项目 点击导航栏上 Heroes 转到 Heroes 列表页面 后退回到 Dashboard 页面,正常情况下应该有的四个 Heroes 没有出现 桌面 safari...或 iOS 都可以,使用 router 导航到一个新页面,然后后退,原页面 Component 生命周期函数不会被调用,导致页面表现不正常。...解决方法 已经有人修复了:fix(router): back button does not work in IE11 and Safari 但至本文成文还没有更新到最新 router npm 模块里...临时应急的话可以自行修改项目目录下node_modules/@angular/router/src/router.js 282 和 284 行即可 this.locationSubscription

    1.8K40

    Vue中父组件如何调用组件方法

    在Vue开发过程中,我们经常需要在一个组件调用另一个组件方法。这篇文章将详细介绍如何在Vue中实现父组件调用组件方法。我们将以一个简单例子来说明这个问题,并给出相应解决方案。...首先,我们需要创建一个子组件和一个父组件。子组件将提供一个方法,而父组件调用这个方法。子组件:标签引入了子组件,并通过$refs获取到了子组件实例。在父组件中,我们定义了一个名为handleClick方法。...当用户点击按钮时,这个方法将被触发。在这个方法中,我们通过this.$refs获取到了子组件实例(即childComponent),然后调用了子组件closeSerialPort方法。...这样就完成了父组件对子组件方法调用。需要注意是,在调用组件方法时,需要使用this.$refs来获取子组件实例。只有通过这种方式,才能确保我们在父组件调用是子组件正确方法

    1.1K00

    vue 调用组件方法失败_Vue子组件调用组件方法及常见问题「建议收藏」

    大家好,又见面了,我是你们朋友全栈君。 1.子组件内不允许直接修改父组件传过来参数。 错误实例: 子组件代码 直接对data参数进行修改,则会提示错误。 vue.runtime.esm.js?...方式1:在子组件调用emit方法来更新data对象,可以配合watch使用,即子组件内值发送变化,则通知父组件数据进行更新。data为父组件通过props传入参数对象, this....解决方法: 动态控制加载子组件 错误描述: 业务场景:组件之前项目引用,如A组件引用B组件,B组件引用A组件, 控制台出现 : did you register the component correctly...解决方法:在main.js文件将A,B组件引入。...import isNotice from ‘@/components/home/notice’ Vue.component(‘isNotice’, isNotice) 用上面的方法全局引入组件就可以解决循环引用组件报错问题

    2.1K20

    vue子组件怎么调用组件方法「建议收藏」

    大家好,又见面了,我是你们朋友全栈君。 方法: 1、子组件中通过“this. p a r e n t . e v e n t ” 来 调 用 父 组 件 方 法 。...2 、 子 组 件 用 “ parent.event”来调用组件方法。 2、子组件用“ parent.event”来调用组件方法。...2、子组件用“emit”向父组件触发一个事件,父组件监听这个事件即可。 3、父组件方法传入子组件中,在子组件里直接调用这个方法即可。 第一种方法是直接在子组件中通过this....$parent.event来调用组件方法组件 import...$emit('fatherMethod'); } } }; 第三种是父组件方法传入子组件中,在子组件里直接调用这个方法组件 <

    3.5K20

    vue 父组件调用组件函数_vue子组件触发父组件方法

    大家好,又见面了,我是你们朋友全栈君。...1、使用场景 项目里将element-uiel-upload写成公共组件方便调用,官方before-upload方法用于处理上传前要做事,如:比较文件大小,限制文件类型等,通过返回true 或 false...当该组件调用组件方法,并且要能获取到父组件方法返回值,如何实现? 2、问题说明 通常子组件调用组件方法:this....$emit(方法名, 传参1, 传参2),但是此方法返回值是vue对象,而不是父组件方法return值。此时要用到高阶函数,传函数作为参数,父组件里执行该函数。...} } } 另一种实现方法:通过传Function,子组件可获取到父组件方法

    2.9K20

    方法调用方式动态创建全局通用组件

    本文介绍以方法调用方式去创建一个全局通用组件,如下通知类组件 如果按照以前方式我们会将组件存到一个公共目录,然后在入口文件引入注册,在全局就可以引用,然后在相应页面进行各种逻辑使其显示或隐藏...,但是这种方式对于此类组件来说不太灵活,因此我们通过方法调用方式传入相关参数动态创建组件,不过这种方式唯一缺点就是实现较为麻烦。...notification显示与隐藏有点麻烦 我们希望在用到时候,直接调用某个方法就可以创建该组件 方法调用方式 首先我们要扩展notification组件,为了到达更加代码复用效果我们通过vue...组件调用方法时候在来根据需求添加 components/notification/func.js import Vue from 'vue' import Compoent from '....,同时还要删除el对象,还要将其通知列表移除 需要主要是我们不能在visible=false时候进行删除操作,那样就没有动画过渡了,我们可以监听transition /components/notification

    1.1K20

    vue子组件传值给父组件_子组件调用组件方法

    console.log('父组件方法') } 步骤①:在子组件调用标签中,绑定一个父组件方法引用 父组件通过事件绑定机制,也就是 @sendSon="fatherMethods" 方式传值给子组件..., 注意,这里是方法引用,换句话就是把这个方法传递给子组件,而不是方法执行完以后值,所以这里不能加括号 目的:把父组件一个方法传给子组件 步骤② 给子组件写一个引发事件 子组件中写一个事件会触发一个子组件本身方法...$emit操作父组件传过来sendSon方法绑定组件方法引用fatherMethods,这时就触发了父组件方法 换句话说:子组件通过$emit出发了从父组件传过来方法 sonEdit(){...$emit('sendSon') } 步骤④ 子组件调用组件时,传参数 真正组件中并没有调用这个show方法,只有传给组件调用了,调用就可以传参数,那么就在子组件中触发时候传参数...步骤⑤ 在调用时候传参数 $emit在触发父组件传过来时候,第一个参数是方法名,第二个起,后面均可以传参数, show方法里面可以写是对参数一系列操作,也就变相完成了从子组件向父组件传值需求

    4.2K20
    领券