嗨 stackoverflow 社区,
这是我在这个网站上得到很多帮助后的第一个问题!
我正在 Ruby On Rails 中构建一个移动 Web 应用程序,为现有的桌面 Web 应用程序集成 JQuery 移动框架。
我使用 Mobvious Gem 进行移动检测 ( https://github.com/jistr/mobvious ),并且我使用 respond_to format.mobile 来区分桌面视图和移动视图。
所以,这是我的问题: 我有 2 个问题,但我确信它们是相关的。
- 我必须使用属性“data-ajax”=>“false”设置我的所有链接,以确保我的 javascript 在之后收费,否则我不是这种情况
- 在来自控制器或渲染或链接“data-rel”=>“back”的 redirect_to 之后,页面的 javascript 不会重新加载。
我想知道是否有使用带有 Javascript 的 Rails 和 JQuery Mobile 的最佳实践。另外,我希望 app/assets/javascript 中只有 1 个 JS 文件包含我所有的移动 JS 内容,但它不起作用。
感谢您的帮助!
编辑:当我查看萤火虫时,将实时事件对象写入控制台时:
- 第一次:控制台显示对象 1 次并且 javascript 正确运行
- 第二次:控制台显示对象 2 次,我有一个错误“TypeError:循环对象值”并且 javascript 没有运行
- 第三次:控制台显示对象 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 => "page", :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 = 捕获
:javascriptPut here the javascript for the page
= 渲染'页面', :page_id => @pageId, :page_content => @pageContent, :javascript_content => @pageJs