Backbone入門基礎-ModelとViewの基本的な使い方
6095 ワード
声明:本文はノートの文章で、麦の学院-Backboneの入門の基礎から学びます
ModelクラスBackboneを作成およびインスタンス化します.Model.extend() メソッドget(),set(),toJSON()
インタフェース要素に対応するJSオブジェクト HMTL要素の操作は、viewオブジェクトによって が完了する.
方法1 方法二
クラスまたはインスタンスでバインド
方法1 方法二
Model提供データ、Viewレンダリングデータ
注意:Modelのデータが変更された場合、Backboneは自動renderしません.
1. Model
var _obj={
title:"task 1",
description: 'description 1'
};
var TodoItem=Backbone.Model.extend({
});
var todoItem= new TodoItem(_obj);
//--result--
console.log(todoItem.get('title'));
console.log(todoItem.toJSON().description);
todoItem.set('title','task 2');
console.log(todoItem.get('title'));
2.View
[1]コンセプト
[2] View
(1)Viewクラスの作成とインスタンス化
var TodoItemView = Backbone.View.extend({
});
var todoItemView= new TodoItemView();
(2)elと$el
el ( DOM ), $el jQuery
(3)ビューのカスタマイズ
var TodoItemView = Backbone.View.extend({
// : , ,ID
tagName: "li",
className: "item-task",
id:'item1',
// attributes
attributes:{
style:"color: red;"
}
});
<p id="header">headerp>
クラスまたはインスタンスでバインド
var TodoItemView = Backbone.View.extend({
el: "#header"
});
var todoItemView= new TodoItemView({
el: "#header"
});
(4)レンダーの再ロード
var TodoItemView = Backbone.View.extend({
tagName: 'p',
id:'header',
render: function(){
this.$el.html('header content');
return this;
}
});
var todoItemView= new TodoItemView();
todoItemView.render().$el.appendTo($('body'));
<p id="header">headerp>
var TodoItemView = Backbone.View.extend({
render: function(){
this.$el.html('header content');
return this;
}
});
var todoItemView= new TodoItemView({
el: "#header"
});
todoItemView.render();
(5)Viewの除去
todoItemView.remove();
[3]ViewとModelの関係
(1)Modelを使用してViewをインスタンス化する
Model提供データ、Viewレンダリングデータ
var todoItemView= new TodoItemView({
model: todoItem
});
(2)ViewでのModelへのアクセス
var TodoItem=Backbone.Model.extend({
});
var todoItem=new TodoItem({
title:"task 1",
description: 'description 1'
});
var TodoItemView = Backbone.View.extend({
tagname:'p',
id:'header',
render: function(){
this.$el.html(''+this.model.get('title')+'');
return this;
}
});
var todoItemView= new TodoItemView({
model: todoItem
});
todoItemView.render().$el.appendTo($('body'));
注意:Modelのデータが変更された場合、Backboneは自動renderしません.