當Client端要使用變數來暫存,可以把變數存在Model物件內,把Model當作一般物件般,做資料儲存
例
一般物件儲存
var obj={
x:123,
y:456
}
console.log('obj x='+obj.x);
Model物件儲存
var model=new Backbone.Model({
x:123,
y:456
})
console.log('model x='+model.get('x'));
2.可自行與Server溝通取得資料
Model本身內建fetch,save等method,只要設定好相關參數(url)Model即可自行與Server溝通取得資料,
也就是當由Server取得資料暫存在Client時,會將取得的資料以Model物件方式儲存在Client上
例
var Item=Backbone.Model.extend({
url:function(){
return "json_sample/playerInfo.json?id="+this.get("id");
}
});
var item=new Item();
item.fetch();//執行fetch後,就會自動由server取得資料並存在這個item內
3.可被監聽
Model內存有多個屬性變數,可以在View上,指定監聽Model的特定屬性,只要當Model的該屬性內容發生變化,View內設定的function即會被觸發執行
例
var model=new Backbone.Model({
x:123,
y:456
})
var myModel=new Backbone.Model({
x:123,
y:456
})
var view=new Backbone.View({
model:myModel,
initialize:function(){
model.on('change:x',this.onChangeHandler)
},
onChangeHandler:function(){
}
})
4.使用模式我們通常可以將App的Status變化,以不同的變數儲存在model內,然後讓需要因為App Status變化,而有需要改變的View監聽這個model,即可讓App內的View可以自動依照status狀態不同而改變,在這樣狀況下使用的model不需要與Server溝通,只是把model當作變數物件使用,再利用model可以被監聽的特性來使用。
model也會被當作由Server端取得資料後,要儲存在Client上的最小儲存單位。
當由Server上取得多筆的資料,每一筆資料都會用model物件型態來儲存,所有的model再放到collection內來儲存,client端的程式就操作這collection即可。
沒有留言:
張貼留言