に収集骨格からデータを取得することはできません。私はjsonデータをレンダリングしている 'movie_controller'にメソッド 'top_movies'を定義しています。私はOMDB APIを使ってアプリを作っていますレール
私はこのようなコレクションを定義している:私は、コンソールでコレクションをフェッチして、このようにオブジェクトを取得
class Fanboy.Collections.Movies extends Backbone.Collection
url: '/movie/top_movies'
を。
Click to see the Image view of console
私は、ページ上のリストを表示します。しかし、私はリストを表示することができません。
movies_router.js.coffee
class Fanboy.Routers.Movies extends Backbone.Router
routes:
"": "index"
initialize: ->
@collection = new Fanboy.Collections.Movies()
@collection.fetch()
index: ->
view = new Fanboy.Views.MoviesIndex(collection: @collection)
$('#movies-container').html(view.render().el)
/view/movies_index.js.coffee
class Fanboy.Views.MoviesIndex extends Backbone.View
template: JST['movies/index']
initialize: ->
@collection.on('reset', @render, this)
render: ->
$(@el).html(@template(movies: @collection))
this
/templates/movies/index.jst.eco
<h4>Top movies of all time </h4>
<ul>
<% for movie in @movies.models : %>
<li><%= movie.get('Title') %></li>
<% end %>
</ul>
ここで私はh4タグを見ることができますが、タイトルのリストは見ることができません。私はここで間違っていますか?助けてください。
アップデート: -私はいくつかのデバッグをしました。定義されたURLはOmdb APIを経由して来ているので、ビューはバックボーンに非同期にロードされます。したがって、問題です。
だから私は、数秒間のsetTimeoutを入れて、今私は、リストを表示することができています。しかし、これはアプリケーションを遅くする。私は今何をすることができますか?
@collection.on('reset', @render, this)
は問題を扱っているはずですけど。しかし、なぜそれができないのですか?代わりに'reset'
使用'sync'
の
ここでは、イベントが発射されていませんクリックしてください。私は 'view/movies_index.js.coffee'でイベントを定義しました。ボタンは 'template/movies_index.jst.eco'の中にあります。理由を教えてください。 –
新しい質問を開くには、見たいときにコードを固執する必要があります。 – mikeapr4
私は新しい質問を開きました:http://stackoverflow.com/questions/42306398/backbone-click-event-発砲しない –