2013-08-02 23 views
0

您好我是新來的骨幹,我明白,你基本上航線的JavaScript爲HTML頁面,但我似乎無法路由任何JavaScript的application.html.erb,因爲它不有一個特定的URL。骨幹Rails的:如何添加JavaScript的HTML中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

是什麼問題?通常情況下,「你想要處理的HTML」將從視圖模板構建,然後路由器或頁面初始化中的某些內容將實例化並呈現視圖。 –

+0

是的,這是正確的,但application.html.erb是一個圍繞所有其他HTML包裝的文件,它沒有一個你可以訪問的URL – user2158382

+0

我沒有看到'application.html.erb'必須做什麼任何東西。您的服務器將返回一個HTML頁面來引導Backbone應用程序,然後返回到您的路由器和JavaScript初始化,以使Backbone進行,然後完成Backbone和您的模板。 –

回答

1

隨着前端構架你最好的打賭是刪除任何你需要訪問的application.html文件。如果你真的想在application.html文件中保留這些東西,你可以給每個你想訪問的元素一個id,這樣你就可以很容易地用javascript來找到它。除此之外,你最好的選擇就是像你說的那樣把所有東西都放到索引頁面中。