我想用Create/UpdateAction中另一個欄位的值來驗證一個欄位。我嘗試了以下方法:
buildCo2Producer co2Producer =
構建Co2Producer
|> fill @["commonSingleConsumptionFrom", "commonSingleConsumptionTo"] !
|> validateField #commonSingleConsumptionFrom (isGreaterThan 0)
|> validateField #commonSingleConsumptionTo (isGreaterThan $ get #commonSingleConsumptionFrom co2Producer)
我希望#commonSingleConsumptionTo大于#commonSingleConsumptionFrom,但無論我在表格中輸入什么,#commonSingleConsumptionFrom在這個驗證中總是0。
uj5u.com熱心網友回復:
所以我的錯誤是我用初始的co2Producer記錄來驗證,而不是用 "填充 "的記錄來驗證。為了解決這個問題,我做了一個函式,它可以接受一個 "其他欄位",并用它來驗證:
buildCo2Producer co2Producer =
構建Co2Producer
|> fill @["commonSingleConsumptionFrom", "commonSingleConsumptionTo"] !
|> validateField #commonSingleConsumptionFrom (isGreaterThan 0)
|> validateWithOtherField #commonSingleConsumptionTo isGreaterThan #commonSingleConsumptionFrom
where?
validateWithOtherField field validateFunction validateWithField record = validateField field (validateFunction $ get validateWithField record) record
uj5u.com熱心網友回復:
這里有另一個可能的解決方案:) 使用一個lambda運算式 co2Producer -> ... 來捕獲管道的co2Producer。
buildCo2Producer co2Producer =
構建Co2Producer
|> fill @["commonSingleConsumptionFrom", "commonSingleConsumptionTo"] !
|> validateField #commonSingleConsumptionFrom (isGreaterThan 0)
|> co2Producer -> validateField #commonSingleConsumptionTo (isGreaterThan $ get #commonSingleConsumptionFrom co2Producer) co2Producer
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/316955.html
標籤:
