コレクションのparseは、内部でモデルのparseを呼び出して、最終的なモデルのインスタンスを取得している。
var Customers = Backbone.Collection.extend({ model : Customer, url : "/cakephp_service/customers", parse: function(data){ return data; } });
コレクションのparseは、内部でモデルのparseを呼び出して、最終的なモデルのインスタンスを取得している。
var Customers = Backbone.Collection.extend({ model : Customer, url : "/cakephp_service/customers", parse: function(data){ return data; } });
各モデルのattributesプロパティを複製したオブジェクトの配列を返します。JSON文字列に変換するのではない。
メソッド名 | 呼び出し方 | 説明 |
---|---|---|
add | add(Modelオブジェクト, オプション) | CollectionにModelオブジェクトを追加するとaddイベントが発生する。オプションに{silent:true}を渡すことで、addイベントの発生を抑制できる |
get | get(Model オブジェクトのid) | 指定したid を持つModelを探して取得する。Model に変更するとModel のchangeイベントがそのままCollectionのchangeイベントとして発生する |
remove | remove(Model オブジェクト, オプション) | CollectionからModelオブジェクトを削除するとremoveイベントが発生する。オプションに{silent:true}を渡すことで、removeイベントの発生を抑制できる |
reset | reset(Modelオブジェクトの配列) | 指定したModelオブジェクトの配列でコレクションをリセットするとresetイベントが発生する。オプションに{silent:true}を渡すことで、resetイベントの発生を抑制できる |
modelInstance.fetch({ url : urlstring, silent : (boolean), success: function (modelInstance) { console.log(modelInstance.toJSON()); }, error: function(model, resp){} })
options の値が内部では jQuery.ajax に渡されるので、/api/blogs/1?foo=bar のようにクエリ文字を渡したい場合は次のように書く。
var Blog = Backbone.Model.extend({ defaults: { "dateTime": new Date().toISOString() }, initialize: function (attrs, options) { }, validate: function (attrs) { if (attrs.text.length === 0) { return "本文が入力されていません"; } } }); blog.fetch({data: {foo: "bar"}});
viewは、render();をもっている。
デフォルトではthisを返すだけなので、関数をオーバーライドする。
render() は、thisを返すというのが暗黙のルール。
つまりthis.render()すれば、return viewしなくてもthisを返す。
テンプレートを別ファイルにして読み込むのに便利。
http://requirejs.org/docs/download.html
require.js のみでは、xxxx.htmlという拡張子でjavascript以外のファイルを外読みするのが無理なので、これを使用する事によってhtmlを含めたごと読み込み、展開する事が可能。