0
从ngrx商店中选择一个对象时,我们没有得到该类的实例,而是获得了具有相同属性的对象。这可以防止在对象上调用函数。从ngrx商店获取模型实例选择
我应该在subscibe函数内创建一个实例吗?我只是想知道我没有找到关于这个主题的任何内容,并且想知道什么是最佳实践。
class ItemModel {
name: string;
formatedName() {
return this.name.upperCass(); // always undefined
}
}
class AnyClass {
item: ItemModel;
construtor() {
this.store.select(state => state.item).subscribe(item => this.item = item);
}
func() {
this.item.formatedName();
}
}
谢谢。大写函数只是一个简单的例子。我有一个有很多价值的模型。有些是基于其他值计算的。我不想在组件内部使用这种逻辑,因为它在多个组件中使用。我不想使用管道,因为它不仅显示在UI中,而且还发送到服务器。所以把它放到模型中并写一个'get'函数似乎是正确的,并且在我使用商店之前工作得很好。 – MarcS82
但我看到你的观点,所以也许我会写静态函数来计算值。 – MarcS82
如果你有很多计算字段,并需要计算的值在许多地方,也许你可以设置一个映射流'store.select(.. item).map(toFormattedItem).subscribe(...)' - >作为一个有利的一面-effect:'toFormattedItem()'将非常容易编写单元测试 – olsn