我使用backbone和tastypie適配器和jquery與DOM交互。我發現了一些我無法理解的骨幹。我試圖簡化這個問題的代碼。保存骨幹後丟失模型實例
這裏是我的app.js:
$(document).ready(function() {
Point = Backbone.Model.extend({
defaults:{
lat:0,
lng:0
},
urlRoot: '/api/v1/point' ,
initialize: function(attributes){
var that = this;
$('#b1').bind('click',function() {
that.set('lat',that.get('lat')+1);
});
$('#b2').bind('click',function() {
that.save();
});
$('#b3').bind('click',function() {
console.log(that.get('lat'));
});
}
});
point = new Point();
//****
$('#b1').click();
$('#b2').click();
$('#b3').click(); // >> 1
$('#b1').click();
$('#b2').click();
$('#b3').click(); // >> 2
//****
});
而且我的html:
<script src="/static/js/jquery.js"></script>
<script src="/static/js/backbone.js"></script>
<script src="/static/js/backbone-tastypie.js"></script>
<script src="/static/js/app.js"></script>
<button id="b1">b1</button>
<button id="b2">b2</button>
<button id="b3">b3</button>
正如你看到的,我打電話單擊按鈕的代碼和控制檯登錄「1 ',然後按照預期'2'。
的問題,當我除去(// *)分之間碼並按下這些按鈕 'B1' 發生時, 'B2', 'B3', 'B1', 'B2', 'B3' 手動瀏覽器,並在控制檯中獲得'1'和'1'。
我等待服務器響應1秒鐘,然後在控制檯中檢查它,但應用程序的行爲仍然相同:'1','2'帶有星號和'1','1'的代碼,按下按鈕。
你知道爲什麼嗎?