backbone學習筆記:模型(Model)(2)屬性驗證

Backbone的屬性驗證有2種方法:git

  1.Backbone自帶簡單的驗證方法,可是驗證規則須要本身實現正則表達式

     經過validate()方法進行驗證,驗證規則寫在此方法裏。     數組

var  RoomModel = Backbone.Model.extend({
   
    validate:function(attrs){
         //驗證規則
        if(!attrs.name){
            return "名字不能爲空";
        }

    }

});

 

那麼何時調用validate()完成驗證呢?網站

   在調用save()方法時validate()方法被觸發,來完成驗證,若是validate()返回錯誤信息,那麼save()方法會中止執行,模型的屬性也不會被更改。失敗的驗證還會觸發invalid事件。ui

   若是在set()方法中傳入參數{validate:true},做爲最後一個參數,也會觸發validate()方法,完成驗證。url

   var room =new RoomModel()spa

    room.set('name','test',{validate:true})prototype

以上都是屬性的自動驗證插件

屬性的手動驗證:room.isValid()//返回true/false,這種驗證不會觸發invalid事件 code

 

  2.利用Backbone擴展插件Backbone.Validation進行屬性驗證,Backbone.Validation重寫了validate()方法,經常使用的驗證規則已經實現,能夠直接使用,節約時間

    首先要從GitHub網站上下載Backbone.Validation,而後引用文件backbone-validation.js。

   使用Backbone.Validation.mixin來擴展Backbone.object():_.extend(Backbone.Model.prototype,Backbone.Validation.mixin)

    在validation屬性中定義具體的驗證規則    

var UserModel = Backbone.Model.extend({
     validation:{
         name:{
              required:true
         },
         email:{
              pattern: 'email'
        }

     }
});

 

     驗證屬性:

          1. required:驗證模型的某個屬性是否必須,值爲true/false

          2.acceptance:驗證某些事情是否被接收,值爲true/false

          3.min:驗證屬性值,必須爲數字,模型某個屬性值只有大於或等於指定的最小值才能驗證成功

          4.max:驗證屬性值,必須爲數字,模型某個屬性值只有小於或等於指定的最大值才能驗證成功

          5.range:驗證屬性值,必須爲數字,模型某個屬性值只有等於指定的某個數值或者在指定的兩個值之間才能驗證成功

          6.length:驗證屬性值,模型某個屬性值的長度必須爲指定長度的字符串。

          7.minLength:驗證屬性值,必須爲數字,模型某個屬性值的長度只有大於或等於指定的最小值才能驗證成功

          8.maxLength:驗證屬性值,必須爲數字,模型某個屬性值的長度只有小於或等於指定的最大值才能驗證成功

          9.rangeLength:驗證屬性值,必須爲數字,模型某個屬性值的長度只有等於指定的某個數值或者在指定的兩個值之間才能驗證成功

          10.one Of:用來驗證屬性值,必須等於指定的數組當中的一個元素,是區分大小寫的

          11.equalTo: 驗證等於指定另一個的屬性值

          12.pattern:驗證匹配指定的模式,模式能夠是正則表達式,也能夠是內置的模式名稱

                      內置模式名稱:

                          number:匹配任意十進制的數字

                          digits:匹配任意數字序列

                          email:匹配合法的郵件地址

                           url:匹配任意合法的URL

相關文章
相關標籤/搜索