2
我使用的是一對夫婦在Angular2 BehaviourSubject
瓦爾從服務中獲得的數據,並更新控制器陣列中重複的代碼。
問題是所有各自的.subscribe()
功能執行相同的操作,我無法找到重用代碼的方法 - 可能傳遞一個lambda函數到.subscribe()
的主體?
一次又一次重新輸入相同的代碼沒有任何意義 - 它會影響組件的可讀性。
方案:
來自不同來源的
this.catagoryASubject.subscribe(
value => {
// updating array and chart
this.radarChartData.forEach((val, i) => { if (val.label == value.name) { this.radarChartData[i].data = value.data } });
},
err => console.log("error"),
() => console.log("complete")
);
this.catagoryBSubject.subscribe(
// same code as in the above subscriber
);
我來這裏是爲了給一個答案,我只是想到了一個更好的。謝謝@Sasxa! – Maxime
函數內部我不能使用'this'運算符來引用組件中的其他變量。有什麼建議麼? –
使用'this.catagoryASubject.let(o => updateChart(o))'語法 – Sasxa