我在Angular Web App中使用Javascipt的Azure移動服務庫。根據這裏的文檔:https://github.com/Azure/azure-mobile-services/blob/master/docs/mobile-services-html-how-to-use-client-library.md#how-to-filter-returned-data如何在查詢Azure移動服務時將過濾器添加到現有過濾器功能
有兩種方法來過濾返回的數據。一個是傳遞一個JSON對象,另一個傳遞一個過濾函數(用於複雜過濾)。我使用過濾函數,因爲我必須使用關係運算符來處理需要大於或小於條件的startDate或endDate這樣的列。
我有一個函數,就像下面的函數一樣,它返回一個基於前端設置的某些過濾器的過濾函數,但爲了迎合不同的過濾器,我必須使用很多if..else條件來查看哪些他們被設置,並返回什麼樣的過濾功能。
function getFilterFunc() {
if (x != null) {
if (y != null) {
return function() { return this.id == xyz && this.x == x && this.y == y; };
} else {
return function() { return this.id == xyz && this.x == x; };
}
}
.
.
.
else {
return function() { return this.id == xyz; };
}
}
它繼續像這樣,我希望你明白了。
我在想,如果有更好的方法來生成這個過濾器函數。如果可以簡單地使用所有過濾器,並簡單地將條件連接到設置的過濾器的單個return語句中。一旦我們完成了所有過濾器,我們將該語句作爲函數返回,並將其用作Azure移動服務的過濾器函數。
感謝您的迴應!在做了一些研究之後,我選擇了切換到所提到的技術。看着你的回覆,向我保證,這是正確的做法。 –