Возврат в вид сверху при входе в уже пройденную вкладку - PullRequest
0 голосов
/ 06 апреля 2019

Мы разрабатываем приложение ionic v1, которое имеет классическую панель вкладок внизу и отдельную страницу для каждой кнопки вкладки.Одна из кнопок вкладок (скажем, «btn1») перемещается к представлению (скажем, «view1»), содержащему список, который при нажатии перемещается к другому представлению (скажем, «view2»), сохраняя панель вкладок внизу.Наша проблема в том, что когда мы переходим к другому представлению, используя кнопку табуляции, находясь в представлении 2, нажатие btn1 приводит к представлению 2 вместо представления 1.View2 по-прежнему не поврежден от предыдущей навигации, включая кнопку «назад», с помощью которой мы в любом случае можем вернуться к view1.Есть ли способ всегда переходить к верхнему виду в дереве при входе на вкладку, вместо получения последнего состояния, в котором она была оставлена?

Вот некоторый код.

rout.js

angular.module('app.routes', [])

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

        $ionicConfigProvider.tabs.position('bottom'); //bottom
        $ionicConfigProvider.views.swipeBackEnabled(false);

        $stateProvider

            .state('tabsController', {
                url: '/page1',
                templateUrl: 'templates/tabsController.html',
                abstract: true
            })

            .state('tabsController.view0', {
                url: '/view0',
                views: {
                    'tab1': {
                        templateUrl: 'templates/view0.html',
                        controller: 'view0Ctrl'
                    }
                }
            })

            .state('tabsController.view1', {

                url: '/view1',
                views: {
                    'tab5': {
                        templateUrl: 'templates/view1.html',
                        controller: 'view1Ctrl'
                    }
                }
            })
            .state('tabsController.view2', {

                url: '/view2',
                params: {
                    id_categoria: null,
                    des_categoria: null
                },
                views: {
                    'tab5': {
                        templateUrl: 'templates/view2.html',
                        controller: 'view2Ctrl'
                    }
                }
            })



    });

tabsController.html

<ion-view>
  <ion-tabs class="tabs-icon-top tab-nera">
    <ion-tab title="Home" icon="ion-ios-home" href="#/page1/view0">
      <ion-nav-view name="tab1"></ion-nav-view>
    </ion-tab>
    <ion-tab title="Cerca" icon="ion-ios-search" href="#/page1/view1" >
      <ion-nav-view name="tab5"></ion-nav-view>
    </ion-tab>
  </ion-tabs>
</ion-view>

view1.html

<ion-view title="Find" cache-view="false">

    [...]

    <ion-content padding="false" class="has-subheader" delegate-handle="listView1">

        [...]

        <ion-list ng-show="array.length > 0">
            <ion-item class="item-thumbnail-left" ng-repeat="c in array" ng-click="open(c);">
                <img ng-src="{{c.img}}" err-src="img/dafault.png" style="-o-object-fit:contain;object-fit:contain;">
                <p>{{c.text}}</p>
            </ion-item>
        </ion-list>

        [...]

    </ion-content>

</ion-view>

view1Ctrl.js

.controller('view1Ctrl', function ($ionicHistory, $scope, FactHttp, $ionicLoading, $state, $ionicPopup, $ionicScrollDelegate, $timeout) {

        [...]

        $scope.open = function (record) {
            if (record) {
                $state.go("tabsController.view2", { "id_record": record.id_record, "title": record.title, "img": record.img, "id_user": record.id_user });
            }
        }

        [...]

    }

View2.html простопоказывать информацию и не обеспечивать взаимодействие.Ниже приведен тег ионного обзора:

<ion-view title="SomeTitle">
...