0

こんにちは、私はバックボーンに不慣れで、基本的にJavaScriptをHTMLページにルーティングすることを理解していますapplication.html.erbが、特定のURLがないため、JavaScriptをにルーティングできないようです。

作業したい HTML を削除してインデックス ページに移動することで、この問題を解決できますが、これは本当に私が望んでいることではありません。

私の「解決策」

ビュー/投稿/post_index.js.coffee

class Poster.Views.PostsIndex extends Backbone.View

  template: JST['posts/index']

  events:
    'click #new_post': 'createPost'

  initialize: ->
    @collection.on('reset', @render, this)
    @collection.on('add', @appendEntry, this)

  render: ->
    $(@el).html(@template())
    @collection.each(@appendEntry)
    this

  createPost: (event) ->
    Backbone.history.navigate("/posts/new", true)

  appendEntry: (post) ->
    view = new Poster.Views.Post(model: post)
    $('#posts_container').append(view.render().el)

index.jst.eco

<div id="menu_bar" class="jumbotron menu_bar row">
    <div class="col-sm-2">
        <button id="new_post" type="button" class="btn btn-default">Post</button>
    </div>
    <div class="col-offset-8 col-sm-2">
        List
    </div>
</div>
4

1 に答える 1