backbone中get和fetch的區別


  我也是剛開始接觸backbone.js對於里面的很多東西都看過,但是具體在使用起來還是有很多問題,其中一個就是get和fetch的區別,這個讓我很糾結,都是獲取模型的數據,干嘛要有兩個呢?最近好像弄明白了點,發到網上歡迎高手拍磚~!

  先說說get,在backbone中,get是用來獲取模型中defaults的數據的,我們都知道模型中有一個叫做defaults的屬性,而這個屬性可能會有很多的數據,比如:

1 World = Backbone.Model.extend({  
2                defaults: {
3                    x: '1',
4                    y: '2'
5                }
6             });

這里面defaults的數據"x"和"y"就可以用get來獲取了:

1 var data=new World();
2 alert(data.get('x'));

  這個就是get的用法。下面我們再來說說fetch的用法吧!

  還是在backbone的模型中有一個URL的屬性,用這個屬性可以訪問遠程的數據,從而更好的跟后台結合,下面就是用URL獲取遠程JSON的示例:

1 World = Backbone.Model.extend({  
2         url:'123.json'
3     });

  遠程的JSON如下:

1 {
2 "employees": [
3 { "firstName":"Bill" , "lastName":"Gates" },
4 { "firstName":"George" , "lastName":"Bush" },
5 { "firstName":"Thomas" , "lastName":"Carter" }
6 ]
7 }

  下面我們要想獲取這些數據就要用到fetch這個方法了:

1 var data=new World();
2     data.fetch({
3         success:function(model, text){
4             alert.log(text.employees);
5         },
6         error:function(){
7             alert("報錯!");
8         }
9     });

  其中fecht有三個返回參數,(參考原版API(model, response, options),其中model就是返回當前的模型,在這個例子中就是data了。response就是返回的數據了,在此例子中就是text,而oprions現在我還沒搞明白o(╯□╰)o~所以希望有知道的高手不吝賜教~

  說到這里還有一個就是fetch獲取回數據后會添加給模型的defaults屬性,然后用get獲取其中的數值,當然這些都是fetch來模擬實現的了~具體的內容有感興趣的同學自己去研究一下原版的BAKCBONE吧~就到這里~不對的地方希望大家指正~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM