這兩天把Backbone源代碼敲了一遍。熟悉了內部的運行機制。。就開始幹Backbone了。。初來乍到、不喜勿噴、喜大普奔~~ app
跑到葉小釵的博客裏邊找了一些源代碼。。感受超級實用函數
先來扯下我瞭解的Backbonethis
1.Model、Collection、View靜態屬性沒有多少,所有丟在原型裏邊,三個對象靠指針相互引用依賴,三個對象都強度依賴Events對象指針
2.三個對象以層級關係來引用對象
扯了這麼久,我也不知道本身在扯些啥、上代碼。。事件
var Contact = Backbone.Model.extend({ name : null});var ContactList = Backbone.Collection.extend({ initialize: function(models,options){ this.bind('add',options.view.addOne); }});var AppView = Backbone.View.extend({ el: $('body'), initialize: function(){ this.contacts = new ContactList(null, {view: this}); }, events: { 'click #addDia': 'addDia' }, addDia: function(){ var name = prompt('請輸入姓名'); var c = new Contact({name : name}); this.contacts.add(c); }, addOne: function(model){ $('#contact-list').append('<li>' + model.get('name') +'</li>'); }});var app = new AppView();先從實例化的view開始,view裏邊只針對collection中的ContactList進行了初始化操做,並把當前view對象當作配置參數傳給contactListcollection啥都沒幹,就是綁定了view中的addone函數在事件add下邊Model就更簡單了,什麼都沒有,就新增了一個自定義屬性name在addDia函數中,新建了一個數據模型C,在實例化的同事傳入了屬性name的鍵值對,再將此模型添加到collection中,自動觸發add事件的回調函數addOne,將視圖添加到contactlist元素中,達到視圖和數據分離的效果。。Backbone的事件運行機制沒弄懂。。下一篇整個Backbone的Events對象,感受Events纔是整個Backbone的驅動器。。大牛也能夠把你的想法告訴我哦。。。記住。。喜大普奔~~~嘎嘎吧