AoT NGC / Angular2:属性受到保护,只能在类Error中访问

时间:2016-10-13 12:10:30

标签: angular ionic2

在我使用的Angular 2 / Ionic 2(final / rc0)项目的组件中,我正在使用:

protected contentTarget: ViewContainerRef;

ngOnInit() {
        this.contentTarget.createComponent(componentFactory);
    }

AoT Compiler说:

Error at ....: Property 'contentTarget' is protected and only accessible within class 'IncludeTemplateComponent' and its subclasses.

整个项目中的其他任何地方都不使用变量(属性)。

所以......任何人都可以对此有所了解,是createComponent工厂将contentTarget变量传递给它的子节点,或者为什么编译器不喜欢这里受保护?现在所有Angular2中的受保护变量都是“被禁止的”吗?

1 个答案:

答案 0 :(得分:11)

来自here

  

对于给定组件,访问其所有成员(方法,属性)   通过其模板必须在提前编译中公开   场景。这是因为模板变成了TS   类。生成的类和组件现在是2个单独的类   并且你不能访问跨类的私人成员。

我的看法是contentTarget被模板引擎使用,因此必须公开让AOT工作。