我想使用我在視圖的選項中定義的選擇器將事件綁定到視圖。綁定骨幹視圖事件時如何使用變量?
喜歡的東西(在coffescript):
events:()->
"change" : "setNewCheckedStateWithCheckbox"
'"click'+ @.options.choices_button_selector +'"' : "test"
不能爲我的生命數字出來。
我想使用我在視圖的選項中定義的選擇器將事件綁定到視圖。綁定骨幹視圖事件時如何使用變量?
喜歡的東西(在coffescript):
events:()->
"change" : "setNewCheckedStateWithCheckbox"
'"click'+ @.options.choices_button_selector +'"' : "test"
不能爲我的生命數字出來。
這裏的問題是,你不能在JavaScript對象文字的關鍵字中執行表達式。設置對象的任意鍵的唯一方法是使用obj[expression]
語法。
下面就來重寫你的代碼,做你想做的一種方式:
class MyView extends Backbone.View
_events = change: "setNewCheckedStateWithCheckbox"
events: ->
eventsHash = _.extend {}, _events
eventsHash["click #{@.options.choices_button_selector}"] = "test"
eventsHash
試試這個
events:()->
"change" : "setNewCheckedStateWithCheckbox"
"click#{@options.choices_button_selector}" : "test"
下一次只是堅持在console.log
,以顯示你不知道的價值觀。
console.log '"click'+ @.options.choices_button_selector +'"'
那將輸出"click#selector"
與報價(不應該在那裏)。
沒錯,這#{}是接近我一直在尋找,但它拋出一個語法錯誤:意外「{」 – Allansideas
什麼你用來編譯? –
這是一個使用咖啡師的rails 3應用程序。 – Allansideas
輝煌,謝謝!我最終考慮了整個觀點,但這是我遇到的問題,並且經常會感到疑惑。完善! – Allansideas