2014-05-15 4 views
0

Привет всем, у меня возникли проблемы с заголовком и прокруткой на боковых меню.Ionic has-header + ionic-side-menus не работает

Хотя я взял его из этого фрагмента, я попытался положить класс/атр HAS-заголовок почти в каждой возможной комбинации:

<ion-side-menus> 

    <ion-side-menu-content> 

    <ion-header-bar class="bar-dark"> 
     <button class="button icon ion-arrow-left-a" ng-click='back()'></button> 
     <h1 class="title">Ionic Shopping Checkout</h1> 
     <button class='button icon ion-bag' ng-click='toggleRightSideMenu()'></button> 
    </ion-header-bar> 

    <ion-purchase></ion-purchase> // custom directive 

    <ion-purchase-footer></ion-purchase-footer> // custom directive 

    </ion-side-menu-content> 

    <ion-side-menu side="right"> 
    <ion-cart has-header='true' ng-controller='CartController'></ion-cart> // custom directive 
    </ion-side-menu> 

</ion-side-menus> 

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

Спасибо за помощь!

+1

Параметр 'имеет-header' атрибут был удален из последних ионных выпусков. Не могли бы вы показать нам свой код для бокового меню? – Riron

+0

@Riron жаль, что он был отключен. Итак, заголовок был удален, что было заменено? Просто класс? – JoshSGman

+0

Из ионного блога: 'Убраны атрибуты has-header, has-footer и has-tabs. Ionic теперь автоматически изменит положение и изменит размер содержимого в зависимости от того, какие присутствующие виджеты присутствуют'. Ваша директива по ионной корзине содержит 'ng-repeat'? Maybie, более подробная информация об этой директиве помогла бы – Riron

ответ

6

Как уже упоминалось выше, атрибут has-header фактически удален. Однако класс has-header по-прежнему существует. В общем, вам не нужно сейчас управлять ими.

Я установил образец, который должен решить все ваши проблемы.

http://codepen.io/calendee/pen/Fuejf

ключевых моменты, такой же, как эти замечания выше, вы потребность содержания идти внутри ion-content директив.

Вот HTML:

<html ng-app="ionicApp"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 

    <title>Side Menus</title> 

    <link href="http://code.ionicframework.com/1.0.0-beta.6/css/ionic.css" rel="stylesheet"> 
    <script src="http://code.ionicframework.com/1.0.0-beta.6/js/ionic.bundle.js"></script> 
    </head> 

    <body> 

    <div ng-controller="AppController">  
     <ion-nav-view></ion-nav-view> 
    </div> 

    <script id="app.html" type="text/ng-template"> 
     <ion-side-menus> 

     <ion-side-menu-content> 
      <ion-nav-bar class="bar-dark"> 
      <ion-nav-back-button class="button-icon ion-arrow-left-c"> 
      </ion-nav-back-button> 
      </ion-nav-bar> 
      <ion-nav-buttons side="left"> 
      <button class="button button-icon button-clear ion-navicon" ng-click="toggleLeft()"> 
      </button> 
      </ion-nav-buttons> 
      <ion-nav-view name="appContent"></ion-nav-view> 
     </ion-side-menu-content> 

     <ion-side-menu side="left"> 
      <ion-header-bar class="bar-assertive"> 
      <h1 class="title">Left Menu</h1> 
      </ion-header-bar> 
      <ion-content> 
      <ion-cart ng-controller='CartController'></ion-cart> 
      </ion-content> 
     </ion-side-menu> 
     </ion-side-menus> 
    </script> 

    <script id="home.html" type="text/ng-template"> 
     <ion-view title="Ionic Shopping Checkout"> 
     <ion-content padding="true"> 
      <ion-purchase></ion-purchase> 
     </ion-content> 
     </ion-view> 
    </script> 

    <script id="ionCart.html" type="text/ng-template"> 
     <div class="list"> 

     <div class="item" ng-repeat="item in data.items">{{item.label}}</div> 
     </div> 
    </script> 

    </body> 
</html> 

Вот JS:

angular.module('ionicApp', ['ionic']) 

.config(function($stateProvider, $urlRouterProvider) { 

    $stateProvider 
    .state('app', { 
     url: "/app", 
     abstract: true, 
     templateUrl: "app.html" 
    }) 
    .state('app.home', { 
     url: "/home", 
     views: { 
     'appContent' :{ 
      templateUrl: "home.html", 
      controller : "HomeController" 
     } 
     } 
    }) 

    $urlRouterProvider.otherwise("/app/home"); 
}) 

.controller('AppController', function($scope, $ionicSideMenuDelegate) { 
    $scope.toggleLeft = function() { 
    $ionicSideMenuDelegate.toggleLeft(); 
    }; 
}) 

.controller("HomeController", function($scope) { 

}) 

.controller("CartController", function($scope) { 

    $scope.data = { 
    items : [] 
    }; 

    for(var i = 0; i < 25; i++) { 
    $scope.data.items.push({ 
     id : i, 
     label : "Item " + i 
    }) 
    } 

}) 

.directive("ionCart", function() { 
    return { 
    restrict : "E", 
    templateUrl : "ionCart.html" 
    } 
}) 

.directive("ionPurchase", function() { 
    return { 
    restrict : "E", 
    template : "<h2>This is Ion Purchase</h2>" 
    } 
}) 
Смежные вопросы