簡體   English   中英

骨干驗證插件。 驗證不適用於模型

[英]backbone.validation plugin. Validation doesn't work on model

我嘗試使用Backbone.validation插件。
這是此插件的鏈接。 https://github.com/thedersen/backbone.validation

創建新的模型實例時,我想開始驗證。 通常,在Backbone中應該實現一個validate函數,然后在何時傳遞{validate:true}

如何用這個插件達到相同的結果?

//create picture instance in a controller 
    var model = new Picture({
            name: file.name,
            size: file.size, 
            type: file.type
     }, {validate: true} );

//Picture class
export default Backbone.Model.extend({
    defaults: {
        name: "",
        size: null, 
        type: ""
    },
    validation: {
        size: function (size) {
            if(size > this.MAX_FILE_SIZE;) {
                return this.onFileSizeError()
            }
            return '';
        },
        onFileSizeError() {
             //execute this when model size is wrong
        }

});

問題解決了

因此,插件文檔中包含有關模型驗證而不與視圖綁定的信息。

使用模型驗證

這種使用插件的方法背后的理念是為您提供一種無需綁定視圖即可在所有模型中實施驗證的簡便方法。 當然,如果使用此選項,則不會執行更新視圖的回調,因為無法知道模型屬於哪個視圖。

驗證混入

要將驗證添加到模型,請在模型的原型中混入驗證。

  _.extend(Backbone.Model.prototype,Backbone.Validation.mixin); 

因此,我們可以創建一個具有擴展Backbone.Model.prototype的基本模型的文件。 現在,每個新類都應通過我們的模型Model進行擴展。

從現在開始,我們可以在實例上使用validation.plugin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM