2012-02-27 56 views
1

我需要找到一種方法將jQuery自動填充處理程序附加到作爲生態模板一部分呈現的輸入字段上。生態模板呈現後是否觸發了事件

這裏是工作正常時,輸入字段是在標記的網頁上

HTML:

<input type="text" name="thing[name]" value="" id="the_input_field"> 
<input type="hidden" name="thing[id]" value="" id="the_id_field"> 

咖啡:

$("#the_input_field").autocomplete 
    source: "/path_to/suggest" 
    select: (event, ui) -> 
    $("#the_id_field").val ui.item.id 

我已嘗試使用的setTimeout版本3秒後應用自動完成工作,但我知道這不是解決方案,只是追查問題。我需要的是回傳到渲染,以便它可以在完成時附加自動完成。

希望有人可以對此有所瞭解。

乾杯

回答

1

好了,所以我掙扎了一段時間,但一個簡單的解決方案,現在似乎是渲染方法後,在兩個電話加入到脊柱控制器。爲什麼我沒有看到這我不知道。

所以我有脊柱控制器現在是:

class WorkRequests extends Spine.Controller 

constructor: -> 
    super 
    @render() 

    render: => 
    @html @view('workrequests/new') 
    @renderUi() 

    renderUi: => 
    $("#the_input_field").autocomplete 
     source: "/path_to/suggest" 
     select: (event, ui) -> 
     $("#the_id_field").val ui.item.id 

window.WorkRequests = WorkRequests 

到目前爲止,這似乎工作並加入jQuery的東西的觀點已經被渲染後。我還沒有看到是否有一個非常沉重的渲染頁面和時間的問題,但我認爲這是一個解決方案。

(踢自己的頭)

+0

你爲什麼要分開renderUi方法?在我看來,它應該都只是在渲染方法中。因爲每次渲染模板時都必須發生邏輯。 – SpoBo 2012-03-08 12:34:26

+0

唯一的原因是我正朝着Spine堆棧移動,並且New和Edit控制器中都有渲染功能。由於這些略有不同,我試圖保持乾爽,並將它放在一個平常的地方。堆棧中的「新建」和「編輯」控制器擴展WorkRequests。 – slarti42uk 2012-03-08 23:35:07

相關問題