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

前端之家收集整理的这篇文章主要介绍了AoT NGC / Angular2:属性受到保护,只能在类Error中访问前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我使用的Angular 2 / Ionic 2(final / rc0)项目中的组件中:
protected contentTarget: ViewContainerRef;

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

AoT编译器说:

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

变量(属性)不会在整个项目中的任何其他位置使用.

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

here

For a given component all its members (methods,properties) accessed
by its template must be public in the ahead-of-time compilation
scenario. This is due to the fact that a template is turned into a TS
class. A generated class and a component are 2 separate classes now
and you can’t access private members cross-class.

我的看法是,contentTarget由模板引擎使用,因此,AOT必须公开才能工作.

猜你在找的Angularjs相关文章