Ionic:具有选项卡和侧面菜单导航问题的Master Detail?

用户3474154

我的应用程序使用选项卡,侧面菜单和主细节图案。但是,由于某种原因,我不知道如何使它导航到列表中项目的详细信息页面。我已经尝试了好几天,但我对Ionic和Angular还是很陌生...

如果有人告诉我出了什么问题,我将不胜感激。

tab-feed.html

<ion-view view-title="Feed">
  <ion-nav-buttons side="right">
    <button class="button icon ion-funnel" ng-click="modal2.show()">
    </button>
  </ion-nav-buttons>
  <ion-nav-buttons side="left">
    <button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
  </ion-nav-buttons>  
  <ion-content>
    <label class="item item-input">
    <i class="icon ion-search placeholder-icon"></i>
    <input type="search" placeholder="Search" ng-model="search">
  </label>
    <ion-list>
      <ion-item class="item item-thumbnail-left" ng-repeat="event in events | orderBy:'name' | searchEvents:search" type="item-text-wrap" href="#/feed/{{event.name}}">
<!--      <ion-item class="item item-thumbnail-left" ng-repeat="event in events" type="item-text-wrap" ui-sref="event({eventId:event.id})">-->
          <img ng-src="http://placehold.it/300x300">
          <h2>{{event.name}}</h2>
          <p><i class="ion-clock"></i> {{event.date | date: 'MM/dd/yy'}} | {{event.time | date: 'shortTime'}}</p>
          <p><i class="ion-location"></i> {{event.location}}</p>
      </ion-item>

    </ion-list>
  </ion-content>

  <ion-footer-bar align-title="center" class="bar-positive">
      <div class="title" ng-click="modal.show()">Add Event</div>
  </ion-footer-bar>
</ion-view>

tabs.html

<ion-view view-title="Tabs">
  <ion-tabs class="tabs-icon-top tabs-positive">

  <!-- Feed Tab -->
<!--  <ion-tab title="The Feed" icon-off="ion-ios-pulse" icon-on="ion-ios-pulse-strong" ui-sref="app.tabs.feed">-->
  <ion-tab title="The Feed" icon-off="ion-ios-pulse" icon-on="ion-ios-pulse-strong" href="#/tab/feed">
    <ion-nav-view name="tab-feed"></ion-nav-view>
  </ion-tab>
</ion-tabs>
</ion-view>

app.js

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

    .state('login', {
      url: '/login',
      controller: 'LoginCtrl',
      templateUrl: 'templates/login.html'
    })

    .state('tabs', {
      url: '/tab',
      controller: 'TabsCtrl',
      templateUrl: 'templates/tabs.html'
    })
    .state('tabs.feed', {
      url: '/feed',
      views: {
        'tab-feed': {
          templateUrl: 'templates/tab-feed.html',
          controller: 'FeedCtrl'
        }
      }
    })  

    .state('tabs.event-detail', {
      url: '/feed/:eventId',
      views: {
        'tab-event-detail': {
          templateUrl: 'templates/event-detail.html',
          controller: 'EventDetailCtrl'
        }
      }
    })
    ...

    $urlRouterProvider.otherwise('/tab');

});

controllers.js

.controller('FeedCtrl', ['$scope', 'getLocalStorage', '$ionicModal', '$ionicSideMenuDelegate', function($scope, getLocalStorage, $ionicModal, $ionicSideMenuDelegate) {

  $scope.info = {};
  $scope.events = getLocalStorage.getEvents();

  $scope.clearSelected = function() {
    $scope.events = $scope.events.filter(function(item) {
      return !item.selected;
    });
    getLocalStorage.updateEvents($scope.events);

  };
  $scope.addEvent = function() {
    $scope.events.push($scope.info);
    $scope.modal.hide();
    getLocalStorage.updateEvents($scope.events);
    $scope.info = {};
  };

  $ionicModal.fromTemplateUrl('new-event.html', function(modal) {
    $scope.modal = modal;
  }, {
    scope: $scope,
    animation: 'slide-in-up',
    focusFirstInput: true
  });
}])

.controller('EventDetailCtrl','getLocalStorage', function($scope, getLocalStorage, $stateParams, $ionicSideMenuDelegate) {

  $scope.openMenu = function () {
    $ionicSideMenuDelegate.toggleLeft();
  };    

  var eventId = $stateParams.name;
  $scope.event = getLocalStorage.getEvent(eventId);
})
斯特凡·迈耶

URL中的参数名称与控制器中的请求参数以及tab-feed.html中的链接不匹配。

app.js

.state('tabs.event-detail', {
  url: '/feed/:eventId',  //   <-- The parameter is defined as eventId
  views: {
    'tab-event-detail': {
      templateUrl: 'templates/event-detail.html',
      controller: 'EventDetailCtrl'
    }
  }
})

controller.js

 .controller('EventDetailCtrl','getLocalStorage', function($scope, getLocalStorage, $stateParams, $ionicSideMenuDelegate) {

  $scope.openMenu = function () {
    $ionicSideMenuDelegate.toggleLeft();
  };    

  var eventId = $stateParams.eventId;  // <-- here you request the parameter
  $scope.event = getLocalStorage.getEvent(eventId);
})

最后,您还需要更正tab-feed.html中的href属性

<ion-item class="item item-thumbnail-left" ng-repeat="event in events | orderBy:'name' | searchEvents:search" type="item-text-wrap" href="#/feed/{{event.eventId}}">

当然,您也可以使用名称作为参数,但是必须保持一致。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVVM Master Detail with WPF TreeView

来自分类Dev

kogrid中的Master / Detail功能

来自分类Dev

Android Master Detail模板和ActionBar

来自分类Dev

带有UI-Route和Master Detail的AngularJS

来自分类Dev

当 master 和 detail 在 XML 中是单独的数据集时,XML Master/detail 数据选择

来自分类Dev

Xamarin.forms-具有导航到Master Detail页面的登录页面具有怪异的布局

来自分类Dev

提高Master Detail SQL代码性能

来自分类Dev

iPad + Master Detail + TabBar上的UINavigationController损坏

来自分类Dev

打开UISplitViewController进入Master View而不是Detail

来自分类Dev

Master Detail Flow Android动画API

来自分类Dev

iPad + Master Detail + TabBar上的UINavigationController损坏

来自分类Dev

Angular 2 Master/Detail 详细解释

来自分类Dev

Xamarin Master Detail棱镜导航栏后退按钮

来自分类Dev

离子性侧面菜单和带有嵌套视图的选项卡:选项卡嵌套视图的内容未显示

来自分类Dev

将 Master/Detail 的第一次出现设置为 Master 视图,而不是 Detail 视图

来自分类Dev

更新时 Xamarin MasterDetailPage 始终为 null Master 和 Detail

来自分类Dev

django rest框架-使用detail_route和detail_list

来自分类Dev

如何针对MASTER条目获取最新的DETAIL条目?

来自分类Dev

jQuery Master-Detail选择列表不起作用

来自分类Dev

在SelectionChanged上使用C#Master Detail网格视图

来自分类Dev

在 Master-Detail-Application 中使用方法 hasPendingChanges

来自分类Dev

子组件之间的 Angular 4 Master/Detail 服务通信

来自分类Dev

iOS 上的 Xamarin.Forms Master/Detail 边缘滑动

来自分类Dev

Master Detail Flow 在单击 recyclerview 时出现空异常

来自分类Dev

带有UI-Bootstrap选项卡和UI-Router的Angularjs导航菜单

来自分类Dev

带有UI-Bootstrap选项卡和UI-Router的Angularjs导航菜单

来自分类Dev

如何在Ionic中使用选项卡设置侧面菜单?

来自分类Dev

何时使用show Segues和何时使用Show detail Segues

来自分类Dev

DevExpress 报告 Main 和 Detail 报告存储过程

Related 相关文章

  1. 1

    MVVM Master Detail with WPF TreeView

  2. 2

    kogrid中的Master / Detail功能

  3. 3

    Android Master Detail模板和ActionBar

  4. 4

    带有UI-Route和Master Detail的AngularJS

  5. 5

    当 master 和 detail 在 XML 中是单独的数据集时,XML Master/detail 数据选择

  6. 6

    Xamarin.forms-具有导航到Master Detail页面的登录页面具有怪异的布局

  7. 7

    提高Master Detail SQL代码性能

  8. 8

    iPad + Master Detail + TabBar上的UINavigationController损坏

  9. 9

    打开UISplitViewController进入Master View而不是Detail

  10. 10

    Master Detail Flow Android动画API

  11. 11

    iPad + Master Detail + TabBar上的UINavigationController损坏

  12. 12

    Angular 2 Master/Detail 详细解释

  13. 13

    Xamarin Master Detail棱镜导航栏后退按钮

  14. 14

    离子性侧面菜单和带有嵌套视图的选项卡:选项卡嵌套视图的内容未显示

  15. 15

    将 Master/Detail 的第一次出现设置为 Master 视图,而不是 Detail 视图

  16. 16

    更新时 Xamarin MasterDetailPage 始终为 null Master 和 Detail

  17. 17

    django rest框架-使用detail_route和detail_list

  18. 18

    如何针对MASTER条目获取最新的DETAIL条目?

  19. 19

    jQuery Master-Detail选择列表不起作用

  20. 20

    在SelectionChanged上使用C#Master Detail网格视图

  21. 21

    在 Master-Detail-Application 中使用方法 hasPendingChanges

  22. 22

    子组件之间的 Angular 4 Master/Detail 服务通信

  23. 23

    iOS 上的 Xamarin.Forms Master/Detail 边缘滑动

  24. 24

    Master Detail Flow 在单击 recyclerview 时出现空异常

  25. 25

    带有UI-Bootstrap选项卡和UI-Router的Angularjs导航菜单

  26. 26

    带有UI-Bootstrap选项卡和UI-Router的Angularjs导航菜单

  27. 27

    如何在Ionic中使用选项卡设置侧面菜单?

  28. 28

    何时使用show Segues和何时使用Show detail Segues

  29. 29

    DevExpress 报告 Main 和 Detail 报告存储过程

热门标签

归档