-
Notifications
You must be signed in to change notification settings - Fork 3
07: FormをViewクラスにする
Kazuhito Hokamura edited this page Oct 23, 2013
·
6 revisions
js/view.js
を作成し、index.html
から読み込みます。
...
<script src="js/app.js"></script>
<script src="js/model.js"></script>
<script src="js/view.js"></script>
...
App.CreateFormView = Backbone.View.extend();
Viewのクラスもnew
することでインスタンス化します。そのとき、el
で要素の指定、collection
で内部で使用するコレクションを指定します。
window.App = {};
$(function() {
var schedules = new App.Schedules();
var createFormView = new App.CreateFormView({
el: '.createForm',
collection: schedules
});
$('.filterForm').submit(function(e) {
// ...
});
schedules.on('add', function(model) {
// ...
});
schedules.on('invalid', function(model, message) {
// ...
});
});
events
プロパティでイベントを指定し、ハンドラをプロパティとして記述します。
App.CreateFormView = Backbone.View.extend({
events: {
'submit': 'onSubmit'
},
onSubmit: function(e) {
e.preventDefault();
var title = this.$('input[name="title"]').val();
var datetime = this.$('input[name="datetime"]').val();
this.collection.add({
title: title,
datetime: moment(datetime)
}, { validate: true });
}
});
フォームを送信して予定が登録されれば成功です。