Мы разрабатываем приложение 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">