2016-01-24 97 views
2

作爲一個從asp.net mvc轉向角度js的開發人員,我對角度js驗證的默認驗證實現感到失望。看起來角度,默認情況下在視圖中實現客戶端驗證,這違反了關注分離規則(imho)。使用Angular JS查看模型驗證?

就我個人而言,我更喜歡在viewmodel而不是view中實現驗證規則。不確定這是否被廣泛採用並在角度js社區中推薦。

所以我的問題是:
1)角js中的驗證的默認實現是一種首選的方式,而不是將其分離爲視圖模型? 2)是否有任何現有的角度庫在單獨的層中實現驗證邏輯?

我期待着這樣的事情。

model.User = { 
    Name: { validate: required, errorMessage: 'Name is required'}, 
    Price: { 
     validate: number, errorMessage: 'Price should be number', 
     validate: number.min = 0, number.max = 100, errorMessage = 'Price should be between 0 and 100', 
    } 
} 

<input ng-model="User.Name" name="Name"> 
<input ng-model="User.Price" name="Price> 
+0

Angular的美麗之處在於它使用了指令。你可能感興趣的是ngMessages。你有問題還是隻是發泄? –

+0

看起來像ngMessages是你想要的 – pixelbits

+0

@BrianBaker我已編輯帖子,包括我的問題。是的,我們可以使用指令,過濾器等實現它。但是根本的問題是,如果沒有支持此功能的現有角庫,我們需要重新考慮並思考爲什麼其他人不實現與視圖分開的驗證邏輯,以及爲什麼在實現之前這不是角js的實踐我們仍處於設計階段。 – desmondlee

回答

1

anugular 2有Model Driven Forms您可以在控制器中引入驗證邏輯。

Good to read-forms-template-driven-vs-model-driven

+1

感謝您的回覆。至少我們知道它現在已經得到支持。至少,事實證明這仍然是一種更好的方式。但是我們將使用angular 1.4來進行我們的開發。 – desmondlee