Есть ли событие после запуска эко шаблона - PullRequest
1 голос
/ 27 февраля 2012

Мне нужно найти способ присоединить обработчик автозаполнения 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 Ответ

1 голос
/ 28 февраля 2012

Хорошо, поэтому я некоторое время боролся, но простое решение теперь, кажется, заключается в добавлении вызовов в контроллер 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 послепредставление было предоставлено.Я еще не выяснил, есть ли какие-либо проблемы с очень тяжелым отображением страницы и временем, но я думаю, что это решение.

(пинает себя в голову)

...