0
我有一個backbone.js模型,其中包含一個日曆。用戶可以在日曆中來回訪問,並可以獲取所選日曆日的活動。backbone.js更改事件只觸發第一次
在我的模型,我有
initialize: function(){ this.on('change:date',this.get_cal()); }, get_cal: function(){ alert('get calendar'); this.fetch(... }
在我看來,我有
cal_date: function(move){ Myapp.cal.attributes.date.setDate(Myapp.cal.attributes.date.getDate()+move); }
當日期改變,我預計骨幹觸發更改事件,並得到日曆事件新的日期。不幸的是,這並沒有發生。
我也試圖把印刷日期到模型中
Myapp.cal.set({print_date: formatted_date});
想,也許骨幹缺少更新,因爲我不是叫「設置」,或者是因爲它看到一個Date對象,並認爲它已經有一個日期對象,因此沒有改變。
我也試圖觸發Myapp.cal.trigger('change')
的變化,在視圖中,但也沒有工作。也不通過調用Myapp.cal.cal_events.refresh()
刪除日曆事件,其中cal_events是持有天事件的集合。
你看到這裏有什麼問題嗎?
這是正確的伊萬,你可以解釋任何機會,或指向我解釋調用'this.get_cal()'函數和'this.get_cal'之間不帶大括號之間的區別?我不明白爲什麼一個人工作,而另一個不是。 – pedalpete
@pedalpete帶括號(this.get_call()),get_call將立即執行。如果沒有括號(this.get_call),那麼您傳遞的函數對象將在相應事件發生時稍後調用。 – Pramod
JavaScript中的@pedalpete函數是一種類似字符串或整數的數據類型。如果沒有圓括號,函數本身就像一個參數一樣傳遞(這就是您通常在指定回調時要做的事情),並帶圓括號 - 它是返回值。 –