2017-01-07 7 views
1

Backbone.validationプラグインを使用しようとしています。
ここにこのプラグインへのリンクがあります。 https://github.com/thedersen/backbone.validationbackbone.validationプラグイン。モデルで検証が機能しない

新しいモデルインスタンスを作成するときに、検証を開始したいと考えています。通常、バックボーンに検証機能を実装する必要があり、我々はを渡す必要があるときに、{検証:真}

をどのようにこのプラグインを使用して同じ結果を得ますか?

 
    //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 
     } 

}); 
+0

おそらく_.extend(Backbone.Model.prototype、Backbone.Validation.mixin)を使用する必要があります。 –

答えて

2

問題は、ビューと結合することなくモデルの検証に関する情報であるプラグインのマニュアルにそう

を解決しました。

は、モデルの検証を使用したプラグインを使用するこの方法の背後にある

哲学は、あなたのビューにバインドする必要が ずに、すべてのモデル間での検証を実装する 簡単な方法を提供することです。もちろん、このオプションを使用すると、 コールバックがビューを更新するためのコールバックは実行されません。 のモデルがどのビューに属しているかを知る方法がないためです。

検証はミックスで

モデルの プロトタイプの検証に混ぜ、あなたのモデルに検証を追加します。

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

だから我々はBackbone.Model.prototypeを延長されるベースモデルを使用してファイルを作成することができます。今度は新しいクラスをクラスモデルで拡張する必要があります。

は今から、我々は我々のインスタンス上validation.pluginを使用することができます

関連する問題