2012-02-25 38 views
7

我用我的末日應用程序內嵌HAML模板。我有一個@@layout有這樣一段:使用right.js刷新閃存[:notice]的內容div?

#message 
    - if flash[:notice] 
    %section.notice= flash[:notice] 
    - if flash[:error] 
    %section.error= flash[:error] 

當我使用flash[:notice] =「你好!」在路由&點擊一個鏈接上,下頁興高采烈地在#message DIV說你好。」太棒了。

所以這裏的問題是,我使用right.js一些AJAX美好的事物添加到我的應用程序,行爲架閃光的不一致的最好的。

大多數時候,你點擊一個鏈接(.linkey),javascript中截取一點點它&加載到一個#content DIV(這部分工作也一樣),那麼「 #message」 DIV重新加載&則顯示前一個動作閃光燈......下次你點擊一個鏈接...的時間80%左右,時間沒有任何顯示的其餘部分。

這是我的JS:

"a.linkey".onClick(function(event) { 
    event.stop(); 
    $('content').load([ "/", this.get('id'), ].join("")); 
    $('message').load('/message'); 
}); 

我想是這樣的:

1)點擊鏈接

2)的鏈接目標(/富)被加載到#content

3)#message重新加載消息(來自路線flash[:notice] =「酒吧」)

4)#content現在顯示/foo & #message顯示「欄中的」

我也試圖與$('message').load('/message');但沒有加載到#message或任何填充#message用「/消息」(字符串不是內容)。

我想知道這到底是怎麼回事呢?是否使用機架閃光燈或right.js?或者是其他東西?如果需要,我可以提供更多的代碼,但實際上沒有更多超出基本框架,因爲我剛開始這個項目。

回答

1

對於通過控制器操作運行AJAX請求,你需要使用flash.now,使閃光消息將可用於當前的請求。所以在你的情況下,flash.now[:notice] = "bar"