2012-03-04 44 views
0

我有一個rails 3應用程序通過ajax抓取'post',並將返回的json插入到鬍鬚模板中,我使用Poirot客戶端和服務器端模板,但我在使用我定義的視圖類方法進行ajax調用後呈現模板時出現問題。如何添加poirot模板對象與視圖類的方法DOM - Mustache&Rails 3

從rails中的服務器渲染mustache模板時這些方法工作正常,但這些方法在javascript模板中不起作用,我不確定如何將數據插入js模板之外的js模板之後。

如果我的視圖類的樣子:

module Posts 

    class PostView < Poirot::View 

    def user_url 
     user_path(post.user_id) 
    end 

    def user_name 
     post.user.name 
    end 

    end 

end 

和我的模板的樣子:

<h1>{{ title }}</h1> //posts title 

<p>Author: <a href="{{ user_url }}"/>{{ user_name }}</a> 

這工作得很好,當我剛:

<%= render 'post' %> 

...所有的定義包括在內,並按照我的預期輸出。

但是,當我從渲染JavaScript的這個模板:

poirot.post(data) 

...所有的視圖類方法不可用。

那麼如何從js模板中提取數據並將其作爲普通html /鬍鬚插入?

我覺得像這樣的工作:

var html = poirot.post(data) 
$('#showPost').append(html); 

但是我還是沒有視圖類方法的模板。我對js很新,所以任何幫助都會很感激。

感謝

回答

1

的波洛視圖類只能由紅寶石渲染從您可以訪問視圖類方法服務器鬍子模板,這樣的時候,卻在客戶端上呈現模板時解釋通過JavaScript你不再有權訪問這些方法。

Handlebars.js是Mustache模板語言的擴展。 Handlebars.js允許您編寫在模板中使用的JavaScript幫助程序方法。

相關問題