2016-05-17 4 views
0

Привет, ребята, я пытаюсь загрузить два представления в одном состоянии. проблема, с которой я сталкиваюсь, заключается в том, что представление, которое загружает последнее, берет на себя всю страницу. Мне нужно удалить этот элемент, чтобы просмотреть первое представление.загрузить множественный вид на состояние ionic

Вот мой сценарий. Я пытаюсь загрузить свое правое меню, которое является динамичным и со временем будет меняться. Поэтому я поместил его в другой файл и попытался загрузить его, но поскольку я объяснил проблему, мое правое меню берет на себя всю страницу, пожалуйста, скажите мне, что я делаю неправильно.

Index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 

    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above 
    <link href="css/ionic.app.css" rel="stylesheet"> 
    --> 

    <!-- ionic/angularjs js --> 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 

    <!-- cordova script (this will be a 404 during development) --> 
    <script src="cordova.js"></script> 

    <!-- your app's js --> 
    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
    </head> 

    <body ng-app="starter"> 
    <ion-nav-view></ion-nav-view> 
    </body> 
</html> 

menu.html

<ion-side-menus enable-menu-with-back-views="false"> 
    <ion-side-menu-content> 
    <ion-nav-bar class="bar-stable bar-positive"> 
     <ion-nav-back-button> 
     </ion-nav-back-button> 

     <ion-nav-buttons side="left"> 
     <button class="button button-icon button-clear ion-navicon" menu-toggle="left"> 
     </button> 
     </ion-nav-buttons> 
    </ion-nav-bar> 
    <ion-nav-view name="menuContent"></ion-nav-view> 
    </ion-side-menu-content> 

    <ion-side-menu side="left"> 
    <ion-header-bar class="bar-stable bar-positive"> 
     <h1 class="title">Left</h1> 
    </ion-header-bar> 
    <ion-content> 
     <ion-list> 
     <ion-item menu-close ng-click="login()"> 
      Login 
     </ion-item> 
     <ion-item menu-close href="#/app/search"> 
      Search 
     </ion-item> 
     <ion-item menu-close href="#/app/browse"> 
      Browse 
     </ion-item> 
     <ion-item menu-close href="#/app/playlists"> 
      Playlists 
     </ion-item> 
     </ion-list> 
    </ion-content> 
    </ion-side-menu> 

    <!-- Right menu --> 
    <ion-nav-view name="rightContent" class="soemthing"> 

    </ion-nav-view> 
</ion-side-menus> 

правой menu.html

<ion-view view-title="Right"> 
    <ion-side-menus enable-menu-with-back-views="false"> 


    <ion-side-menu side="right"> 
     <ion-header-bar class="bar-stable bar-positive"> 
     <h1 class="title">Right</h1> 
     </ion-header-bar> 
     <ion-content> 
     <ion-list> 
      <ion-item menu-close ng-click="login()"> 
      Login 
      </ion-item> 
      <ion-item menu-close href="#/app/search"> 
      Search 
      </ion-item> 
      <ion-item menu-close href="#/app/browse"> 
      Browse 
      </ion-item> 
      <ion-item menu-close href="#/app/playlists"> 
      Playlists 
      </ion-item> 
     </ion-list> 
     </ion-content> 
    </ion-side-menu> 


    </ion-nav-view> 
    </ion-side-menus> 
</ion-view> 

App.js

angular.module('starter', ['ionic', 'starter.controllers']) 

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if (window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     cordova.plugins.Keyboard.disableScroll(true); 

    } 
    if (window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleDefault(); 
    } 
    }); 
}) 
.config(function($stateProvider, $urlRouterProvider) { 
    $stateProvider 

    .state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
    }) 

.state('app.playlists', { 
    url: '/playlists', 
    views: { 
    'menuContent': { 
     templateUrl: 'templates/playlists.html', 
     controller: 'PlaylistsCtrl' 
    }, 
    'rightContent': { 
     templateUrl: 'templates/rightMenu.html' 
    } 
    } 
}) 

    // if none of the above states are matched, use this as the fallback 
    $urlRouterProvider.otherwise('/app/playlists'); 
}); 

ответ

0

Вы должны просто использовать ионный sidemenus пути он предназначен.

<ion-nav-buttons side="left"> 
    <button class="button button-icon button-clear ion-navicon" menu-toggle="left"> 
    </button> 

</ion-nav-buttons> 
<ion-nav-buttons side="right"> 
    <button class="button button-icon button-clear ion-navicon" menu-toggle="right"> 
    </button> 
</ion-nav-buttons> 

кто-то сделал codepen здесь: http://codepen.io/anon/pen/VYvjze

вы можете загрузить содержимое в правой меню динамически, как и любой другой точки зрения.

Смежные вопросы