スタックオーバーフロー コミュニティの皆様、こんにちは。
これは、このサイトに大いに助けられた後、サイトでの最初の質問です!
既存のデスクトップ Web アプリケーションに JQuery Mobile Framework を統合する Ruby On Rails でモバイル Web アプリケーションを構築しています。
モバイル検出 ( https://github.com/jistr/mobvious ) に Mobvious Gem を使用し、respond_to format.mobile を使用してデスクトップとモバイル ビューを区別しています。
だから、ここに私の問題 があります.2つの問題がありますが、それらは関連していると確信しています.
- すべてのリンクを属性 "data-ajax" => "false" に設定して、javascript が課金されたことを確認する必要がありました。
- コントローラーまたはレンダリングまたはリンクからの redirect_to の後、「data-rel」=>「戻る」ページの JavaScript がリロードされません。
Rails と JQuery Mobile を Javascript で使用するベスト プラクティスがあるかどうかを知りたいです。また、すべてのモバイル JS コンテンツを含む JS ファイルを app/assets/javascript に 1 つだけ配置したいのですが、うまくいきません。
助けてくれてありがとう!
EDIT : firebug を調べたとき、コンソールにライブ イベント オブジェクトを書き込むとき:
- 初めて : コンソールにオブジェクトを 1 回表示し、javascript を正しく実行する
- 2回目:コンソールにオブジェクトを2回表示すると、「TypeError:循環オブジェクト値」というエラーが発生し、JavaScriptが実行されません
- 3 回目: コンソールにオブジェクトが 3 回表示され、javascript が正しく実行されます
これが私のモバイルのビューの構造です:
私の「レールレイアウト」:
!! %html{..html タグの内容..}
%頭
/render the head with all includes & metatag = render 'head'
%体
/render here each page made by the layout _page_mobile.haml = yield
_page_mobile.haml ファイル:
%div{:id => "#{page_id}", :style => "padding-bottom:0px;", :data => {:role => "ページ", :theme => "b"}}
/Common header bar for all pages %div#headerBar{:class => "main-header", :data => {:role => "header",:theme => "b"}} = render 'header' /content of the page %div.mainContainer{:style => "padding: 0px;", :data => {:role =>"content"}} = page_content /Common footer bar for all pages %div#footerBar{:data => {:role => "footer", "tap-toggle" => "false",:theme => "b", :position => "fixed"}} = render 'footer'
/ページの JavaScript を挿入 = javascript_content
上記のコードでレンタルされたページの「テンプレート」:
- @pageId = "id_of_the_page"
- @pageContent = capture do
ここにページのコンテンツを入れます- @pageJS = キャプチャ do
:javascriptPut here the javascript for the page
= render 'page', :page_id => @pageId, :page_content => @pageContent, :javascript_content => @pageJs