如何在Angular 2中的另一个类(组件)中使用一个类(组件)的变量?

时间:2015-11-13 03:21:41

标签: typescript angular

我正在使用Angular 2(TypeScript)。为简单起见,有两个文件:A.tsB.ts

如何在B.ts类中使用AAA(在A.ts中)?谢谢!我花了一天多时间,但还没有成功......

A.ts

import {Component, View} from 'angular2/angular2';

@Component({
    selector: 'foo'
})
@View({
    template:`

    `
})
export class Foo{
    AAA:DataClass = new DataClass(); // AAA is here.
}

B.ts

import {Component, View} from 'angular2/angular2';

@Component({
    selector: 'bar'
})
@View({
    template:`

    `
})
export class Bar{
    constructor(){
        // How can I use AAA here?
    }
}

1 个答案:

答案 0 :(得分:3)

这取决于您的组件之间的关系:

  1. 如果您在组件A的视图中使用组件C ,则可以使用@ViewChild属性修饰符来引用A组件(只有在调用afterViewInit生命周期挂钩后才能使用A组件。)

  2. 如果您使用组件B 作为组件B的内容,则可以使用@ContentChild属性修饰符来引用{ {1}}组件(只有在调用afterContentInit生命周期挂钩后才能使用B组件。

  3. 如果您想获取组件所在的组件,可以使用@Host()@Inject()参数装饰器。

  4. 看一下下一个例子(见this plunk):

    B