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