2012-02-27 60 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

相关问题