对于要从视图中专门使用的ng2属性和方法,建议的访问修饰符是什么?Angular2:对于将在视图中访问的typescript属性和函数,建议的访问修饰符是什么
我一直在使用私有的,而是跨越这个职位上运行,不鼓励它:Angular2 - should private variables be accessible in the template?
与此同时,标志着一切,公众似乎并不正确,而且也不保护。
对于要从视图中专门使用的ng2属性和方法,建议的访问修饰符是什么?Angular2:对于将在视图中访问的typescript属性和函数,建议的访问修饰符是什么
我一直在使用私有的,而是跨越这个职位上运行,不鼓励它:Angular2 - should private variables be accessible in the template?
与此同时,标志着一切,公众似乎并不正确,而且也不保护。
起初看起来公众不会被期望,因为那意味着它可以被任何东西访问。但事实是,他们不是真的。
永远实例化一个组件来调用它的属性和方法是没有意义的。相反,组件类的目的是支持模板。
如果您有一个子组件,您可以使用@Input获取其属性。
您可以使用@ViewChild
或@ViewChildren
来获取子组件并访问其属性或方法。我只是尝试过这样的事实,公共财产是可以访问的,私人财产不是。但这是我能想到的唯一场景。
您还在想另一种情况吗?
目前,'public'可能是理想的,虽然'protected'会抑制ALS警告消息,但如果依赖AOT编译应该避免。
Angular Language Service(您的IDE可能会使用它来突出显示代码中的错误/警告)会发出警告:“标识符”指组件的私有成员“当使用私有作为成员的访问修饰符时。
在这个题目涉及的警告消息还指出,a related access/AOT git hub issue讨论这可以解释为什么存在警告,会说一个stackoverflow answer for a similar question以“公”与“私”在访问修饰符之间AOT和非AOT以及细微之处TypeScript与JavaScript。
只要我不关心AOT编译,我在使用'protected'时避免了在IDE中的警告,但我从未在其他地方看到过这个建议。
感谢您的回答。我有一个视图用来显示/隐藏元素的字段,其值由@Input的setter设置。我不喜欢公开这个财产,当它的价值应该由这个制定者完全设定时。我想代码纯度,我可以继续与这个属性的setter/getters事情。 – amy8374