Onsen-ui - кнопка «Назад» со скользящим меню не работает

Я создаю мобильное приложение в monaca.mobi и использую Onsen Ui.

В приложении много страниц, и каждая страница ссылается на другую страницу, поэтому мне нужна кнопка «Назад» на всех страницах, кроме домашней.

У меня в index.html есть это:

    <!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
    <script src="components/loader.js"></script>
    <link rel="stylesheet" href="components/loader.css">
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="components/monaca-onsenui/css/onsen-css-components-default.css">
    <script>
        ons.bootstrap();
    </script>
</head>
<body>
    <ons-sliding-menu var="app.slidingMenu" menu-page="menu.html" main-page="home.html" side="left" type="overlay" max-slide-distance="200px">
    </ons-sliding-menu>
</body>
</html>

На моей странице home.html это:

 <ons-page style="background: url('images/background.jpg'); background-position:center; background-repeat:no-repeat; background-size:cover;">
        <div style="position:fixed;" class="navigation-bar">
  <div class="navigation-bar__left">
   <ons-toolbar-button ng-click="app.slidingMenu.toggleMenu()"><ons-icon icon="bars"></ons-icon></ons-toolbar-button>
  </div>

  <div class="navigation-bar__center">
    <img class="gmlogo" src="images/logo.png"/>
  </div>

  <div class="navigation-bar__right">
    <span onclick="app.slidingMenu.setMainPage('push.html', {closeMenu: true})" class="toolbar-button--quiet navigation-bar__line-height">  <i class="fa fa-envelope-o fa-lg" style="color: #4E81BA"></i></span>
  </div>
</div>

<div class="outer">
<div class="middle">
<div class="inner">
<h2 class="center gmwhite unbold">Επιλογή Κατηγορίας</h2>
<button onclick="app.slidingMenu.setMainPage('pages/price/brand.html', {closeMenu: true})" class="gmhomebutton gmhomebutton--outline">Car Price List</button>
<button onclick="app.slidingMenu.setMainPage('pages/valuation/message.html', {closeMenu: true})" class="gmhomebutton gmhomebutton--outline">Car Valuation Price</button>

</div>
</div>
</div>
 </ons-page>

а на следующей странице brand.html это:

    <ons-page style="background: url('images/bg2.jpg'); background-position:center; background-repeat:no-repeat; background-size:cover;">
        <div class="navigation-bar">
  <div class="navigation-bar__left">
  <div class="left" style="line-height: 144px">
        <ons-back-button ng-click="(home.html)">Back</ons-back-button>
      </div>
   <ons-toolbar-button ng-click="app.slidingMenu.toggleMenu()"><ons-icon icon="bars"></ons-icon></ons-toolbar-button>
  </div>

  <div class="navigation-bar__center">
    <img class="gmlogo" src="images/logo.png"/>
  </div>

  <div class="navigation-bar__right">
    <span onclick="app.slidingMenu.setMainPage('push.html', {closeMenu: true})" class="toolbar-button--quiet navigation-bar__line-height">  <i class="fa fa-envelope-o fa-lg" style="color: #4E81BA"></i></span>
  </div>
</div>


<h4 class="center gmblack unbold">Μάρκες Αυτοκινήτων</h4>
<ul style="height: 70%;" class="gmlist">
  <li onclick="app.slidingMenu.setMainPage('pages/price/model.html', {closeMenu: true})" class="gmlist__item list__item--chevron">
    <img class="gmlistbrand" src="images/demo/abarth.png"/> Abarth
  </li>
  <li class="gmlist__item list__item--chevron">
    <img class="gmlistbrand" src="images/demo/abarth.png"/> Acura
  </li>
  <li class="gmlist__item list__item--chevron">
     <img class="gmlistbrand" src="images/demo/abarth.png"/> Aixam
  </li>
  <li class="gmlist__item list__item--chevron">
     <img class="gmlistbrand" src="images/demo/abarth.png"/> Alfa Romeo
  </li>
  <li class="gmlist__item list__item--chevron">
     <img class="gmlistbrand" src="images/demo/abarth.png"/> Alpina
  </li>
  <li class="gmlist__item list__item--chevron">
     <img class="gmlistbrand" src="images/demo/abarth.png"/> Ariel
  </li>
  <li class="gmlist__item list__item--chevron">
    <img class="gmlistbrand" src="images/demo/abarth.png"/> Asia Motors
  </li>
  <li class="gmlist__item list__item--chevron">
     <img class="gmlistbrand" src="images/demo/abarth.png"/> Aston Martin
  </li>
  <li class="gmlist__item list__item--chevron">
    <img class="gmlistbrand" src="images/demo/abarth.png"/> Audi
  </li>
  <li class="gmlist__item list__item--chevron">
    <img class="gmlistbrand" src="images/demo/abarth.png"/> Austin Healey
  </li>
</ul>

 </ons-page>

Я перепробовал почти все, но не могу добавить кнопку «Назад» на страницы, может ли кто-нибудь помочь в этом?

спасибо


person Jannis M.    schedule 18.12.2015    source источник
comment
Сначала прочитайте о Stackoverflow: stackoverflow.com/tour. Вы не должны создавать новые ответы, чтобы просто отвечать другим. Вместо этого используйте комментарии :)   -  person Fran Dios    schedule 22.12.2015


Ответы (3)


Я думаю, вы не видите кнопку «Назад», потому что вы не помещаете страницу в стек.

Для этого вам нужно добавить директиву ons-navigator и использовать ее метод «pushPage()».

Ознакомьтесь с документацией, особенно с живым примером: http://onsen.io/reference/ons-back-button.html

person Gatsbill    schedule 21.12.2015

Просто добавьте элемент ons-back-button на панели инструментов тех страниц, с которых вы хотите вернуться. ons-back-button не принимает никаких параметров, он просто возвращает на предыдущую страницу. Например:

<ons-toolbar>
  <div class="left" style="line-height: 44px">
    <ons-back-button>Back</ons-back-button>
  </div>
  <div class="center">Title</div>
  <div class="right" style="line-height: 44px">
    Right
  </div>
</ons-toolbar>
person Andi Pavllo    schedule 21.12.2015

Если вам нужно поведение кнопки «назад» при загрузке страницы из меню «ons-sliding», добавьте директиву ons-navigator в index.html и используйте в menu.html метод pushPage() и menu.closeMenu().

индекс.html:

<body>
  <ons-navigator animation="slide" var="myVar">  
    <ons-page>
      <ons-sliding-menu menu-page="menu.html" main-page="home.html" side="left" var="menu" type="reveal" max-slide-distance="260px" swipable="true" swipe-target-width="50">
      </ons-sliding-menu>
    </ons-page>
  </ons-navigator>
</body>  

меню.html:

<ons-list class="menu-list">
  <ons-list-item class="menu-item" ng-click="myVar.pushPage('about.html'); menu.closeMenu()">
    <ons-icon icon="fa-info-circle" fixed-width="true"></ons-icon> About
   </ons-list-item>
</ons-list>

домашний.html:

<ons-page>
    <ons-toolbar modifier="opacity">
      <div class="left">
        <ons-toolbar-button ng-click="menu.toggle()">
           <ons-icon icon="ion-navicon-round" fixed-width="false"></ons-icon>
        </ons-toolbar-button>
      </div>
      <div class="center">Title 1</div>
    </ons-toolbar>
    <div class="app-page">
      <ons-list>
        <ons-list-item modifier="chevron" class="list-item-container" ng-click="myVar.pushPage('mypage.html');">
          <ons-row>...
person Juan Pablo Sanchez    schedule 16.06.2016