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