加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – NG2:如何一般访问父组件?

发布时间:2020-12-17 07:35:14 所属栏目:安全 来源:网络整理
导读:在开始之前请注意我最初在angular2 github网站上将此问题作为功能请求提出.但是请求已经结束,我被建议在这里发布.我在这里.希望在stackoverflow上我会有更好的运气.原始请求可以在这里找到: https://github.com/angular/angular/issues/10448.这里我只是重
在开始之前请注意我最初在angular2 github网站上将此问题作为功能请求提出.但是请求已经结束,我被建议在这里发布.我在这里.希望在stackoverflow上我会有更好的运气.原始请求可以在这里找到: https://github.com/angular/angular/issues/10448.这里我只是重复我的初始请求.但是,您可以通过以下链接找到一些讨论.我们走了……穿过我的手指……

我需要能够一般地获得对父组件的引用,而子组件不必知道父组件的类型.基本上我需要这样的东西(伪代码):

@Component({
    template: '<child></child>'
    directives: [Child]
})
class ParentComponent{}

@Component({
    selector: 'child'
})
class ChildComponent{
    constructor(@Parent() _parent: any){}
}

基本上我需要ChildComponent的_parent字段来引用ParentComponent.但请注意_parent的类型是什么.这是任何因为它可以是任何字面意思. ChildComponent是一个通用组件,可供任何类型的其他组件使用.我知道这个问题有解决方案,但它们都需要孩子知道父母的类型.它是这样的:

@Component({
    selector: 'child'
})
class ChildComponent{
    constructor(_parent: ParentComponent){}
}

但同样,这对我不起作用,因为ChildComponent可以用于任何类型的其他组件,并且两个都不知道另一个组件的类型.所以我需要的是一些通用的方法来向ChildComponent注入它的父组件,如组件树中设置的那样,而ChildComponent不知道父类型.有谁知道我怎么能做到这一点?

谢谢

您可以使用Injector API.

#Angular2最新版本(也适用于旧版本)

import { Injector } from '@angular/core';
import {AppComponent} from "./app.component";

@Component(
{
   selector: 'child'
}
)
class ChildComponent{
    constructor(private inj:Injector){
         let parentComponent = this.inj.get(AppComponent);
         console.log(parentComponent);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读