【问题标题】:Align navbar back button on right side在右侧对齐导航栏后退按钮
【发布时间】:2016-06-12 02:35:17
【问题描述】:

我正在开发一个离子应用程序,我需要在右侧对齐导航栏后退按钮。以下是我的代码:

<ion-view title="Home" ng-controller="HomeCtrl" style="padding-top: 50px">
  <ion-nav-bar class="bar-balanced bar-dark">
    <ion-nav-back-button></ion-nav-back-button>
  </ion-nav-bar>
  <ion-content scroll="true">
    <ion-list>
      <ion-item ng-repeat="item in items" href="#/res/{{item}}">
        {{item.toUpperCase()}}
      </ion-item>
    </ion-list>
  </ion-content>
</ion-view>

我已经尝试了以下代码来使用ion-nav-buttons 对齐按钮:

<ion-view title="Home" ng-controller="HomeCtrl" style="padding-top: 50px">
  <ion-nav-bar class="bar-balanced bar-dark">
    <ion-nav-buttons side="right">
      <ion-nav-back-button></ion-nav-back-button>
    </ion-nav-buttons>
  </ion-nav-bar>
  <ion-content scroll="true">
    <ion-list>
      <ion-item ng-repeat="item in items" href="#/res/{{item}}">
        {{item.toUpperCase()}}
      </ion-item>
    </ion-list>
  </ion-content>
</ion-view>

但是上面的代码抛出错误如下:

Error: [$compile:ctreq] Controller 'ionNavBar', required by directive 'ionNavBackButton', can't be found!
http://errors.angularjs.org/1.4.3/$compile/ctreq?p0=ionNavBar&p1=ionNavBackButton
    at http://localhost:8100/lib/ionic/js/ionic.bundle.js:13380:12
    at getControllers (http://localhost:8100/lib/ionic/js/ionic.bundle.js:21319:19)
    at nodeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:21445:33)
    at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20853:13)
    at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20857:13)
    at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20857:13)
    at nodeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:21457:24)
    at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20853:13)
    at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20857:13)
    at publicLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20728:30) <ion-nav-bar class="bar-balanced bar-dark nav-bar-container" nav-bar-transition="ios">(anonymous function) @ ionic.bundle.js:25642
ionic.bundle.js:1173 'webkitMovementX' is deprecated. Please use 'movementX' instead.

【问题讨论】:

    标签: css angularjs ionic-framework ionic-view


    【解决方案1】:

    您可以使用此代码:

    <ion-nav-buttons side="right">
        <button class="button button-icon button-clear ion-arrow-left-c" ng-click="goBack()">back
        </button>
    </ion-nav-buttons>
    

    在您的控制器中:

    $scope.goBack = function() {
      $ionicHistory.goBack(-1);
    }
    

    P.S.:在这种情况下没有使用&lt;ion-nav-back-button&gt;&lt;/ion-nav-back-button&gt;

    这里是一个例子:http://codepen.io/beaver71/pen/NNWZBp

    【讨论】:

    • 提供您的代码进行测试,因为在我的项目中它可以完美运行(以及在 codepen 中)。除了代码中不需要 ion-nav-back-button 之外,你怎么可能有这个错误?
    • 还有一个问题,我怎样才能给出相同的行为,如果最初加载的页面没有页面历史记录,它应该被隐藏(例如:主页)
    • 我修改了 CodePen,添加了对历史长度的检查...并仅在 len>1 时显示返回按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2014-10-01
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多