2011-06-21 7 views
1

私はレールとjqueryを使って開発していて、何日もの間これを行う方法の簡単な例を探していました。私は特定の日付の顧客の太陽光発電システムの電力出力を示すページpoweroutput.html.erbを持っています。彼らは別の日付を入力するときに、私はそれらを別の出力を見てもらいたいが、ページをリロードする必要はありません。次のようにRailsとjQuery:ページ上のJavascriptがリロードされていますが、実行されていません

<head> 
    <script type="text/javascript"> 
    <%= render "pages/poweroutputscript" %> # renders a partial containing all my js 
    </script> 
</head> 

# a form is here on this page too 

マイページのコントローラのアクションは、現在、次のとおりです:

次のように私のページでは、私はいくつかのJavaScriptだけでなく、(ユーザが電源出力を見たい日付を提出するための)形を持っています
def poweroutput  
    # some code 

    if request.xhr? 
    @date = params[:dt]   # dt is posted when form is submitted 
    else 
    @date = Time.now.getlocal.strftime("%d.%m.%Y") 
    end 

    respond_to do |format| 
    format.html 
    format.js { render :action "pages/poweroutput.js.erb" } 
    end 
end 

そしてpoweroutput.js.erb次のとおりです。

$("script").html("<%= escape_javascript render "pages/poweroutputscript" %>"); 

ようになり、フォームが正常に送信し、私は私のスクリプトタグ間のJSが実際に担当されていることをFirebugの上で見ることができます新しいjsと紐を張った。しかし、私のブラウザのビューはそれに応じて更新されていません。私は間違って何をしていますか?

答えて

1

<script>タグの内容を置き換えると、実行されるとは思われません。試してみてください:

$("script").replaceWith("<script><%= escape_javascript render "pages/poweroutputscript" %></script>"); 

<script>を作成してドキュメントに追加してください。

+0

はい!これはうまくいった!ありがとうございました!私は数日間このことについて涙が出てきた。 – pitachip

+0

replaceWithが動作した後、Firebugは

関連する問題