【发布时间】:2016-08-12 17:21:26
【问题描述】:
我正在使用 Angular 2 和 lodash。
我有一个带关系的模型,我有一个像这样的吸气剂:
get relationsPerType() {
return _(this.Relations)
.groupBy(p => p.Type)
.toPairs()
.map(p => ({
type: <MessageRelationType>p[0],
relations: <Relation[]>p[1]
}));
}
将relationshipPerType 的值绑定到*ngFor 指令
编辑:这是我的绑定:
<div *ngFor="#relationGroup of Message.relationsPerType">
...
</div>
给我以下错误:
表达式“MessagesDetailsComponent@60:8 中的 Message.relationsPerType” 检查后有变化。上一页
这似乎是完全正确的,因为确实每次调用它时都会计算它。
无论如何,拥有像这样的“计算”变量,我无法想象 Angular 2 更改检测如何检测到 RelationsPerType 实际发生了变化。 比如将 getter 标记为不可变?
我想更好的方法是:
a) 从一开始就将计算得到的 getter 值存储在属性中
b) 使父对象不可变,以便 Angular 不跟踪属性的更改
有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript typescript angular decorator lodash