禁用Sidepanel - Framework7

时间:2017-04-28 16:47:20

标签: html-framework-7

所以我正在使用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 });
  });
});

2 个答案:

答案 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';
  }