Backbone Rails:如何在application.html.erb中为HTML添加javascript

时间:2013-08-02 05:46:41

标签: javascript ruby-on-rails ruby-on-rails-3 backbone.js

您好我是骨干新手,我明白您实际上是将javascript路由到HTML页面,但我似乎无法将任何javascript路由到application.html.erb,因为它没有特定的网址。

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

1 个答案:

答案 0 :(得分:1)

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