2014-11-25 99 views
0

我有這樣的menue:溫泉UI滑動菜單

<ons-navigator animation="slide" var="myNavigator"> 
    <ons-sliding-menu menu-page="menu.html" main-page="link/to/some/page.html" side="left" 
         var="menu" type="reveal" max-slide-distance="260px" swipable="true"> 
     </ons-sliding-menu> 

     <ons-template id="menu.html"> 
      <ons-page modifier="menu-page"> 
      <ons-toolbar modifier="transparent"></ons-toolbar> 
      <ons-list class="menu-list"> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('link/to/some/page.html', {closeMenu: true})"> 
        Home 
       </ons-list-item> 
      <ons-list-item class="menu-item" ng-click="menu.setMainPage('link/to/some/other/page.html', {closeMenu: true})"> 
        Home 
       </ons-list-item> 
    </ons-list> 
      </ons-page> 
     </ons-template> 
    </ons-navigator> 

導航到 「鏈接/到/一些/其它/ page.html中」 之後,我有一個$scope.myNavigator.pushPage('anotherpage', {});

操作。這也適用。 但是當我執行pushpage操作後,我無法再使用該菜單。之前我必須做一個popPage

一個網頁看起來是這樣的:

<div ng-controller="someNiceController"> 
    <ons-page> 
     <ons-toolbar> 
     <div class="left"> 
      <ons-toolbar-button ng-click="menu.toggle()"> 
       <ons-icon icon="ion-navicon" size="28px" fixed-width="false"></ons-icon> 
      </ons-toolbar-button> 
     </div> 
     <div class="center">{{title}}</div> 
     </ons-toolbar> 
     My nice content 
    </ons-page> 
</div> 

我覺得有一個問題,我的頁面結構... 有什麼建議?

回答

2

您應該將滑動菜單放在導航器之外。

當您按下時,導航器中的內容將被另一個頁面替換,因此當您使用pushPage()時,示例中的滑動菜單將消失。

下面的代碼演示瞭如何一起使用滑動菜單有導航:

<ons-sliding-menu 
        main-page="main.html" 
        menu-page="menu.html"  
        side="left" 
        max-slide-distance="250px" 
        var="menu"> 
</ons-sliding-menu> 

<ons-template id="main.html"> 
    <ons-navigator var="myNavigator"> 
    <ons-toolbar> 
     <div class="center">Page 1</div> 
    </ons-toolbar> 
    <br> 
    <div style="text-align: center"> 
     <ons-button onclick="myNavigator.pushPage('page2.html')">Push</ons-button> 
    </div> 
    </ons-navigator> 
</ons-template> 

<ons-template id="page2.html"> 
    <ons-page> 
    <ons-toolbar> 
     <div class="center">Page 2</div> 
    </ons-toolbar> 
    <br> 
    <div style="text-align: center"> 
     <ons-button onclick="myNavigator.popPage()">Pop</ons-button> 
    </div> 
    </ons-page> 
</ons-template> 

<ons-template id="menu.html"> 
    <ons-list> 
    <ons-list-item modifier="tappable"> 
     Some option 
    </ons-list-item> 
    <ons-list-item modifier="tappable"> 
     Another option  
    </ons-list-item> 
    </ons-list> 
</ons-template> 

在這裏,你可以看到它在行動: http://codepen.io/argelius/pen/ogXGeV

+0

謝謝。這適用於菜單,但會導致一些其他問題....例如: 在我的角碼中,我爲按鈕等設置了一些樣式。那些元素不再被發現。示例命令:document.getElementById('btn_apply') – publicDisplay 2014-11-27 11:42:46

+1

但是在給定的鏈接中沒有顯示菜單 – RezaRahmati 2014-12-12 09:56:47

0

下面是溫泉UI工作滑動菜單。您應該做出的兩項更改是將sliding-menu元素放在導航器之外,並用變量var="menu"來引用它。使用變量可以簡化腳本。點擊下面的一個簡單的例子。

ons.bootstrap();
<head> 
 
    <link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.2.2/build/css/onsenui.css" rel="stylesheet" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script> 
 
    <script src="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.2.2/build/js/onsenui.min.js"></script> 
 
    <link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.2.2/build/css/onsen-css-components.css" rel="stylesheet" /> 
 
</head> 
 

 
<body> 
 
    <ons-sliding-menu main-page="main.html" menu-page="menu.html" side="left" max-slide-distance="250px" var="menu"> 
 
    </ons-sliding-menu> 
 
    <ons-template id="main.html"> 
 
    <ons-navigator var="myNavigator"> 
 
     <ons-toolbar> 
 
     <div class="center">Page 1</div> 
 
     </ons-toolbar> 
 
     <br> 
 
     <div style="text-align: center"> 
 
     <ons-button onclick="myNavigator.pushPage('page2.html')">Next Page</ons-button> 
 
     <ons-button onclick="menu.toggleMenu()">Toggle Menu</ons-button> 
 
     </div> 
 
    </ons-navigator> 
 
    </ons-template> 
 
    <ons-template id="page2.html"> 
 
    <ons-page> 
 
     <ons-toolbar> 
 
     <div class="center">Page 2</div> 
 
     </ons-toolbar> 
 
     <br> 
 
     <div style="text-align: center"> 
 
     <ons-button onclick="myNavigator.popPage()">Back</ons-button> 
 
     </div> 
 
    </ons-page> 
 
    </ons-template> 
 
    <ons-template id="menu.html"> 
 
    <ons-list> 
 
     <ons-list-item modifier="tappable"> 
 
     First option 
 
     </ons-list-item> 
 
     <ons-list-item modifier="tappable"> 
 
     Second option 
 
     </ons-list-item> 
 
    </ons-list> 
 
    </ons-template> 
 
</body>