1

eco テンプレートの一部としてレンダリングされる入力フィールドに 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 秒後にオートコンプリートを適用するバージョンを試してみましたが、これは解決策ではなく、問題を追跡するだけです。私が必要とするのは、レンダリングに渡すコールバックです。これにより、完了時にオートコンプリートをアタッチできます。

誰かがこれに光を当ててくれることを願っています。

乾杯

4

1 に答える 1

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 のものを追加します。非常に重いレンダリングされたページとタイミングに問題があるかどうかはまだわかりませんが、これは解決策だと思います.

(自分の頭を蹴る)

于 2012-02-28T10:21:24.060 に答える