我需要找到一种方法将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秒后应用自动完成功能的版本,但是我知道这不是解决方案,只是追踪问题。我需要的是一个回调以传递给渲染,这样它就可以在完成时附加自动完成。
希望有人可以对此有所了解。
干杯
答案 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内容。我还没有看到是否有任何问题,非常繁重的渲染页面和时间,但我认为这是一个解决方案。
(踢自己的头脑)