2016-12-03 61 views
0

這是一個更一般的問題。角組件是否應該檢查其輸入的有效性?

我創建了一個過濾器,應該做到以下幾點:

採取多項是在一個或兩個數字,兩個數字

angular.module('myModule').filter('twoDigits', function() { 
    return function(input) { 
     return ('0' + input).slice(-2); 
    }; 
}); 

我使用表單驗證,以確保返回數字即在發生什麼是數字99

介於0和但我知道,我的過濾器將胡作非爲,如果我把一個空值,或字符串等

當我正在設計一個角度組件。 我應該從組件的邏輯中控制進入的內容嗎?

或者我應該只是控制來自外部的輸入(如使用表單驗證)。

+0

你在哪裏使用這個過濾器?另外你爲什麼使用它?這是純粹的視覺原因還是你需要它在2位數字格式工作編程? –

+0

這是出於視覺原因。對於兩位數的定時器。 – Lev

回答

0

根據我的經驗,通常最好是在用戶填寫表單時進行某種形式的驗證,並在服務器處理數據時在後端執行表單驗證。

驗證前端使用戶體驗更好,因爲它減少了用戶認爲他們輸入了所有必需信息後可能會返回的錯誤數量,只是爲了發現某些內容格式錯誤,他們必須再試一次,直到他們做對了。

驗證在後端減少漏洞,你可能不知道的(形式的SQL注入),以及防止任何麻煩,你可能會碰到這樣當用戶試圖把一個破折號( - )在一個電話號碼只允許數字(或一定數量的字符等)的條目。此外,總有辦法繞過前端驗證,通過控制檯中的javascript調整,技術上允許用戶輸入數據,而無需通過前端驗證進行篩選。

驗證正面和背面始終是最佳實踐。