2014-02-06 53 views
1

我很困惑在ngModel控制器的解析器函數和格式化函數中返回什麼。Angular用解析器和格式化函數的返回值做什麼?

我知道當某個值無效時,您將在解析器函數中返回undefined,否則返回有效值。但是wat是否會使用Angular做這個值?它是更新$modelValue$viewValue,還是...?

我希望有人能向我解釋這一點。

回答

3

將它傳遞給下一個解析器/格式化函數,如果沒有設置$ modelValue/$ viewValue。

NgModelController的行爲像這樣。

viewValue changes -> parsers -> modelValue -> if changed update model
modelValue changes -> formatters -> viewValue -> if changed calls $render

一般來說解析器和格式化無關與審定。但是,如果在解析器函數中返回undefined,並且該字段爲required,表單將無效。

查看this評論在舊文檔中的詳細解釋。

+0

謝謝。是' - > parsers - > modelValue'(和viewValue是格式化程序)函數的返回值嗎? – Martijn

+1

是的,每個解析器的返回值用於下一個解析器的值。最後一個分析器的返回值用作modelValue。對於格式化程序有相同的區別 - **格式化程序數組是從數組中的最後一項開始向後遍歷**。 –

相關問題