您好我是骨干新手,我明白您实际上是将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>
答案 0 :(得分:1)
使用前端框架,最好的办法是删除任何需要js访问application.html文件的内容。如果你真的想在application.html文件中保留这些东西,你可以给你想要访问id的每个元素,这样你就可以用javascript轻松找到它。除此之外,你最好的选择是将所有内容都移到索引页面中,就像你说的那样。