Backbone.Marionette.ItemViewのonRenderメソッドでも要素にアクセスできません。
たとえば、私は次のようにしています。
レンプレート:
<input type="text" id="searchBox">`
ItemView:
View = Backbone.Marionette.ItemView.extend
template: searchTemplate
onRender:
@setTypeahead ['a', 'b', 'c', 'd']
setTypeahead: (valueArray) ->
console.log $('#searchBox')
$('#searchBox').typeahead
source: valueArray
予期せぬことに、コンソールに記録されたオブジェクトには入力要素が含まれていません。セレクターが機能しませんでした。何故ですか?
ここにあるMarionetteのgithubの小さなコードブロック内のコメントには、「ここを操作しel
ます。すでにレンダリングされており、ビューのHTMLでいっぱいで、すぐに使用できます」と記載されています。誤解しない限り、テンプレートはレンダリングされ、ItemViewのonRender関数内で操作できるようになると思います。