所以我正在使用framework7制作混合移动应用程序。我有点问题。好的,我有一个侧面板,当用户打开应用程序时会自动禁用。当用户登录并重定向到主视图时,侧面板将启用。到目前为止,我已经开始工作了。我在用户退出时无法禁用侧面板。我在互联网上阅读了一些问题并尝试了几件事。
首先,我在用户退出时尝试使用myApp.allowPanelOpen = false;
。
//Log out
$(document).on("click", '.logout', function(){
myApp.allowPanelOpen = false;
myApp.closePanel();
window.localStorage.clear();
mainView.router.loadPage({url:'index.html', ignoreCache:true, reload:true });
});
这根本不起作用,在我重定向到索引页面后,我仍然可以通过向右滑动打开侧面板。
其次,我尝试合并myApp.allowPanelOpen = false;
和myApp.params.swipePanel = false;
//Log out
$(document).on("click", '.logout', function(){
myApp.allowPanelOpen = false;
myApp.params.swipePanel = false;
myApp.closePanel();
window.localStorage.clear();
mainView.router.loadPage({url:'index.html', ignoreCache:true, reload:true });
});
这也行不通,因为即使我在用户登录后设置myApp.allowPanelOpen = true;
和myApp.params.swipePanel= true;
,我也无法打开面板。
任何人都知道我怎么能这样做?非常感谢任何帮助,这是我目前正在运行的代码:
$(document).ready(function(){
// Init App
var myApp = new Framework7({
modalTitle: 'La Cava Express',
material: true,
pushState : true,
swipePanel: "left"
});
//Disable sidepanel by default when app started (this is working)
myApp.allowPanelOpen = false;
// Define Dom7
var $$ = Dom7;
// Init View
var mainView = myApp.addView('.view-main', {});
//Main screen after the user logs in
myApp.onPageInit('promo-catalog', function (page) {
//Enable sidepanel when user starts this page
myApp.allowPanelOpen = true;
});
//Log out
$(document).on("click", '.logout', function(){
myApp.allowPanelOpen = false;
myApp.closePanel();
window.localStorage.clear();
mainView.router.loadPage({url:'index.html', ignoreCache:true, reload:true });
});
});
答案 0 :(得分:2)
好的,所以我让它运转了。在博客文章中找到了这个。我最终使用了myApp.params.swipePanel= false;
参数。我在每个想要禁用面板的页面上使用此参数。每当我想在某个页面上启用它时,我都会使用myApp.params.swipePanel= 'left';
。
//Log in screen
myApp.onPageInit('login', function (page) {
//Disable sidepanel when user starts this page
myApp.params.swipePanel = false;
});
//Main screen after the user logs in
myApp.onPageInit('promo-catalog', function (page) {
//Enable sidepanel when user starts this page
myApp.params.swipePanel = 'left';
});
答案 1 :(得分:0)
仅对特定页面隐藏面板,否则显示面板代码注意,页面名称不是您的文件名,它位于文件本身data-page =“ yourpage”
中 var page = e.detail.page;
console.log(page.name);
if(page.name=="services") {
myApp.params.swipePanel = false;
} else
{
myApp.params.swipePanel='left';
}