0

嗨,我是主干的新手,我知道您基本上将 javascript 路由到 HTML 页面,但我似乎无法将任何 javascript 路由到,application.html.erb因为它没有特定的 URL。

我可以通过删除我想要处理的 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

1

使用前端框架,最好的办法是从 application.html 文件中删除任何需要 js 访问的内容。如果您真的想将这些内容保留在 application.html 文件中,您可以为每个想要访问的元素提供一个 id,以便您可以使用 javascript 轻松找到它。除此之外,您最好的选择是将所有内容都移到您所说的索引页面中。

于 2013-08-02T18:35:42.267 回答