2011-09-30 98 views
1

我想使用我在視圖的選項中定義的選擇器將事件綁定到視圖。綁定骨幹視圖事件時如何使用變量?

喜歡的東西(在coffescript):

events:()-> 
    "change" : "setNewCheckedStateWithCheckbox" 
    '"click'+ @.options.choices_button_selector +'"' : "test" 

不能爲我的生命數字出來。

回答

2

這裏的問題是,你不能在JavaScript對象文字的關鍵字中執行表達式。設置對象的任意鍵的唯一方法是使用obj[expression]語法。

下面就來重寫你的代碼,做你想做的一種方式:

class MyView extends Backbone.View 
    _events = change: "setNewCheckedStateWithCheckbox" 
    events: -> 
    eventsHash = _.extend {}, _events 
    eventsHash["click #{@.options.choices_button_selector}"] = "test" 
    eventsHash 
+0

輝煌,謝謝!我最終考慮了整個觀點,但這是我遇到的問題,並且經常會感到疑惑。完善! – Allansideas

0

試試這個

events:()-> 
    "change" : "setNewCheckedStateWithCheckbox" 
    "click#{@options.choices_button_selector}" : "test" 

下一次只是堅持在console.log,以顯示你不知道的價值觀。

console.log '"click'+ @.options.choices_button_selector +'"' 

那將輸出"click#selector"與報價(不應該在那裏)。

+0

沒錯,這#{}是接近我一直在尋找,但它拋出一個語法錯誤:意外「{」 – Allansideas

+0

什麼你用來編譯? –

+0

這是一個使用咖啡師的rails 3應用程序。 – Allansideas