天天看點

MVVM架構~Knockoutjs系列之驗證機制的引入

對于Knockoutjs本身來說,沒有提供驗證子產品,不過,有第三方的擴充,就像你為jquery庫作extensions一樣,這講中我将介紹一個Knockout插件擴充,knockout.validation.js,用它來實作對HTML标記的驗證,

感到陌生,思想是一樣的,JS裡的Validation也是面向對象的,也支援override,比如系統為非空驗證提供的提供是“This field is required.”,你當然可以重寫它,讓它顯示“請輸入使用者名”,呵呵,這個很簡單,下面

看一下某體的代碼:

首先要引入這兩個JS檔案

下面的例子中,分别對使用者名,分類ID,價格,Email位址做了資料有效性的驗證,并且每個驗證中的參數都可以以JS對象或者屬性的形式存在,這也足夠靈活了,如果是JS對象的話,那麼params表示參數的值,而message

表示提示的資訊,看一下它的實作(很面向對象的,呵呵)。

下面再看一下HTML部分,它與之前講的knockout資料綁定沒有差別

事實上,比上面的知識更重要的是,我認為還是它的思想,這樣東西都可以由前台工程師去開發,然底層開發人員(asp,.net,php,jsp,ios,android)不需要去幹預這些,它們隻要寫好JS檔案去調用自己的方法即可,當然JS檔案也可以以前台工程師去寫,隻不

過,這需要前台工程師等底層工程師把接口寫好後,再開發了,呵呵。

看一下效果:

怎麼樣,有點MVC的味道吧,呵呵,這個前台validation的表現可以由CSS工程師去搞定,不過,一般這活都是前台工程師的,嗨,前台工程師要負責的東西可真不少PS切圖,HTML代碼編寫,JS代碼編寫,CSS樣式編寫,還有如果是MVVM架構,

他們還要了解資料庫結構,呵,在這裡,讓我代表所有開發人員說一聲:“前台工程師,你們辛苦了”!