使用 Ruby Sinatra erb 模板访问 jQuery Mobile (jqm) 多页 html
Use Ruby Sinatra erb template to access jQuery Mobile (jqm) multipage html
我有一个标准的 jQuery-Mobile 多页 HTML 文件,我需要使用 ERB 模板从我的 Sinatra 应用程序访问该文件。我看不到如何访问文件中的书签或锚点。
我的代码很简单:
get '/login' do
erb :'admin.html#login_page'
end
但是,我得到的是:
No such file or directory @ rb_sysopen - .../views/admin.html#login_page.erb:
我要访问的文件是
admin.html.erb
带有 login_page 的书签。
我尝试访问的 HTML 模板部分如下,但还包括其他页面。
<div data-theme="b" data-role="page" id="login_page">
<%= partial :'main-header.html', locals: {page: 'Management Console Login'} %>
<div class="ui-content">
<a href="#login" data-rel="popup" class="ui-btn ui-btn-inline ui-corner-all ui-icon-check ui-btn-icon-left">Admin
Login</a>
<div data-role="popup" data-history="false" id="login" class="ui-content" style="min-width:250px;">
<form action='/login_process' method='post' data-ajax='false'>
<div data-role="controlgroup">
<h3>Administrative Login</h3>
<label for="logon" class="ui-hidden-accessible">Logon:</label>
<input type="text" name="user" id="logon" placeholder="Logon">
<label for="password" class="ui-hidden-accessible">Password:</label>
<input type="password" name="password" id="password" placeholder="Password">
<input type="submit" id="loginButton" data-transition="flip" value="Login">
</div>
</form>
</div>
</div>
<%= partial :'frontend/footer.html' %>
<script type='application/javascript' src='assets/login_modal.js'></script>
</div>
我只想渲染它,但我需要 Ruby 翻译器。知道如何使这项工作或更好的方法吗?谢谢...
基本搞定了,但其他代码仍然有问题,所以我没有使用它。我将锚点转换为局部变量,然后引用它 HTML JavaScript 以转到该锚点。
在 Sinatra 中:
erb :'admin.html', :locals => {:anchor => "#login_page"}
在页面中:
let body = $("body");
let anchor = <%= "\'#{anchor}\'" %>;
body.on("pagecontainerbeforeshow", function (event, ui) {
body.pagecontainer("change", anchor);
});
这成功了。我遇到的问题是我必须根据 beforeshow 在一页上进行动态更改,我无法开始工作。
但是,我确实解决了这个问题。
我有一个标准的 jQuery-Mobile 多页 HTML 文件,我需要使用 ERB 模板从我的 Sinatra 应用程序访问该文件。我看不到如何访问文件中的书签或锚点。
我的代码很简单:
get '/login' do
erb :'admin.html#login_page'
end
但是,我得到的是:
No such file or directory @ rb_sysopen - .../views/admin.html#login_page.erb:
我要访问的文件是
admin.html.erb
带有 login_page 的书签。
我尝试访问的 HTML 模板部分如下,但还包括其他页面。
<div data-theme="b" data-role="page" id="login_page">
<%= partial :'main-header.html', locals: {page: 'Management Console Login'} %>
<div class="ui-content">
<a href="#login" data-rel="popup" class="ui-btn ui-btn-inline ui-corner-all ui-icon-check ui-btn-icon-left">Admin
Login</a>
<div data-role="popup" data-history="false" id="login" class="ui-content" style="min-width:250px;">
<form action='/login_process' method='post' data-ajax='false'>
<div data-role="controlgroup">
<h3>Administrative Login</h3>
<label for="logon" class="ui-hidden-accessible">Logon:</label>
<input type="text" name="user" id="logon" placeholder="Logon">
<label for="password" class="ui-hidden-accessible">Password:</label>
<input type="password" name="password" id="password" placeholder="Password">
<input type="submit" id="loginButton" data-transition="flip" value="Login">
</div>
</form>
</div>
</div>
<%= partial :'frontend/footer.html' %>
<script type='application/javascript' src='assets/login_modal.js'></script>
</div>
我只想渲染它,但我需要 Ruby 翻译器。知道如何使这项工作或更好的方法吗?谢谢...
基本搞定了,但其他代码仍然有问题,所以我没有使用它。我将锚点转换为局部变量,然后引用它 HTML JavaScript 以转到该锚点。
在 Sinatra 中:
erb :'admin.html', :locals => {:anchor => "#login_page"}
在页面中:
let body = $("body");
let anchor = <%= "\'#{anchor}\'" %>;
body.on("pagecontainerbeforeshow", function (event, ui) {
body.pagecontainer("change", anchor);
});
这成功了。我遇到的问题是我必须根据 beforeshow 在一页上进行动态更改,我无法开始工作。
但是,我确实解决了这个问题。