当我们可以直接从模板访问属性时,为什么要复制代码来定义吸气剂?
您不必使用吸气剂。仅在每次访问属性时需要执行一些逻辑时,它们才有用。
示例:您的属性的值是从代码中其他属性的值得出的(这些其他值会随着时间而变化)。您不能一劳永逸地将值存储在属性中,因为每次其他值更改时都必须重新计算该值。(考虑一下购物车组件中的总计,这是通过将每种产品的价格乘以单位数量获得的。)
本质上,getter属性类似于调用函数。但是,在一个模板有些人喜欢写{{ myValue }}
VS {{ getMyValue() }}
。
Angular中访问器的另一种用法是实现一个setter以对属性的值更改做出反应。文档中有一个组件的示例,该组件的@Input发生了变化,并且该组件需要对此做出反应。请参阅https://angular.io/docs/ts/latest/cookbook/component-communication.html#parent-to-child-setter。