渲染生态模板后是否触发了事件

时间:2012-02-27 16:01:30

标签: ruby-on-rails-3.1 spine.js eco

我需要找到一种方法将jQuery自动完成处理程序附加到作为eco模板的一部分呈现的输入字段。

当输入字段位于标记页面

时,这是正常的

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 个答案:

答案 0 :(得分:1)

好的,所以我挣扎了一段时间,但现在似乎是一个简单的解决方案是在render方法之后将调用添加到Spine控制器中。为什么我没有看到这个我不知道。

所以我现在在Spine控制器中拥有的是:

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内容。我还没有看到是否有任何问题,非常繁重的渲染页面和时间,但我认为这是一个解决方案。

(踢自己的头脑)