2016-05-03 14 views
0

私はBackboneでかなり新しく、いくつかの問題があります(上級ユーザーの助けが必要です)。フォームによるバックボーン検証の実装

私はこのような形式を追加しました:

var app = app || {}; 

app.Aquarium = Backbone.Model.extend({ 

    validation: { 
    aquarium_name: { 
     required: true, 
     msg: 'Please enter a valid name' 
    }, 
    aquarium_volume: { 
     required: true, 
     msg: 'Please enter a valid volume' 
    }, 
    aquarium_type: { 
     required: true 
    } 
    } 
}); 

し、フォームをPILOTEビュー:

var AquariumFormView = Backbone.View.extend({ 
    tagName: "form", 
    id: "addAquaForm", 
    events: { 
     'click #btn-new-aqua': "addAqua" 
    }, 
    initialize: function() { 
     // This hooks up the validation 
     this.model = new pedia.Aquarium(); 
     Backbone.Validation.bind(this); 
    }, 
    addAqua: function() { 
     var data = this.$el.serializeObject(); 

     this.model.set(data); 

     // Check if the model is valid before saving 
     if (this.model.isValid(true)) { 
      // this.model.save(); 
      alert('Great Success!'); 
     } 
    }, 
    remove: function() { 
     // Remove the validation binding 
     Backbone.Validation.unbind(this); 
     return Backbone.View.prototype.remove.apply(this, arguments); 
    } 
}); 

Iその後、私はモデルを作成

<form class="SectionContainer-Content container form-horizontal" role="form" id="addAquaForm"> 
    <div class="form-group"> 
     <label for="aquarium_name">Name</label> 
     <input type="text" name="aquarium_name" id="aquarium_name" value="" placeholder="" class="form-control" /> 
    </div> 
    <div class="form-group"> 
     <label for="aquarium_volume">Volume</label> 
     <input type="text" name="aquarium_volume" id="aquarium_volume" value="" placeholder="" class="form-control" /> 
    </div> 
    <div class="form-group"> 
     <label for="aquarium_type">Type : </label> 
     <select class="form-control" id="aquarium_type"> 
      <option>first</option> 
      <option>second</option> 
     </select> 
    </div> 
</form> 

私のページをロードすると、ビューは初期化されませんが、私はどのようにそれを行うことができるのか分かりません。

誰かに私にいくつかのアイデアを与えることができましたか?

感謝:)

+0

私はテンプレートの終わりにこれを使用してのことを考え、それがベストプラクティスだと確信していませんよ。 .. '$(関数(){ VARビュー=新しいAquariumFormView({ EL: 'フォーム'、 モデル:新しい水族館() }); });' – user3757181

答えて

0

あなたは、ページのロード時にビューを初期化したい場合:

$(document).ready(function(){ 
var view = new AquariumFormView(); 
}); 
関連する問題