- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在使用 $ionicHistory
时遇到问题在使用 ion-tabs
的页面上。我使用它导航到上一个 View (使用 goBack()
)。当我在 View 中放置选项卡时,历史是错误的,后 View 是之前的两个 View 。
为了演示这一点,我创建了一个具有 4 个页面/ View 的演示应用程序 (plunker here)。第 1 页 -> 第 2 页 -> 第 3 页 -> 第 4 页。最后一页上有标签。
angular
.module("demoapp", ['ionic'])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider){
$stateProvider
.state('first', {
url: '/',
controller: 'firstController',
templateUrl: 'first.html',
})
.state('second', {
url: '/second',
controller: 'secondController',
templateUrl: 'second.html',
})
.state('third', {
url: '/third',
controller: 'thirdController',
templateUrl: 'third.html',
})
.state('fourth', {
url: '/fourth',
controller: 'fourthController',
templateUrl: 'fourth.html',
});
$urlRouterProvider.otherwise("/");
}])
.factory("historyFactory", ['$ionicHistory', function($ionicHistory){
var show = function() {
var text = "";
var vh = $ionicHistory.viewHistory();
if(vh !== null) {
text += "VIEWS=" + JSON.stringify(vh.views);
text += "BACK=" + JSON.stringify(vh.backView);
}
return text;
}
return {
show : show,
}
}])
.controller("firstController", [
'$scope',
'$location',
function($scope, $location){
$scope.next = function() {
$location.path("/second");
};
}])
.controller("secondController", [
'$scope',
'$location',
'$ionicHistory',
'historyFactory',
function($scope, $location, $ionicHistory, historyFactory){
$scope.next = function() {
$location.path("/third");
};
$scope.prev = function() {
$ionicHistory.goBack();
};
var init = function() {
$scope.data = historyFactory.show();
};
init();
}])
.controller("thirdController", [
'$scope',
'$location',
'$ionicHistory',
'historyFactory',
function($scope, $location, $ionicHistory, historyFactory){
$scope.next = function() {
$location.path("/fourth");
};
$scope.prev = function() {
$ionicHistory.goBack();
};
var init = function() {
$scope.data = historyFactory.show();
};
init();
}])
.controller("fourthController", [
'$scope',
'$ionicHistory',
'historyFactory',
function($scope, $ionicHistory, historyFactory){
$scope.prev = function() {
$ionicHistory.goBack();
};
var init = function() {
$scope.data = historyFactory.show();
};
init();
}]);
这是带有选项卡的 View 的样子:
<ion-view>
<ion-tabs class="tabs-balanced">
<ion-tab title="Tab One">
<ion-header-bar class="bar-balanced">
<div class="buttons">
<button class="button button-icon ion-ios-arrow-back" ng-click="prev()"></button>
</div>
<h1 class="title">Page 4 - Tab 1</h1>
</ion-header-bar>
<ion-content class="has-header">
<h3>History</h3>
<p>{{data}}</p>
</ion-content>
</ion-tab>
</ion-tabs>
</ion-view>
在第二页上,查看历史如下所示:
VIEWS=
{"002":{"viewId":"002","index":0,"historyId":"root","backViewId":null,"forwardViewId":"003","stateId":"first","stateName":"first","url":"/"},
"003":{"viewId":"003","index":1,"historyId":"root","backViewId":"002","forwardViewId":null,"stateId":"second","stateName":"second","url":"/second"}}
BACK=
{"viewId":"002","index":0,"historyId":"root","backViewId":null,"forwardViewId":"003","stateId":"first","stateName":"first","url":"/"}
在第三页,又增加了一个 View :
VIEWS=
{"002":{"viewId":"002","index":0,"historyId":"root","backViewId":null,"forwardViewId":"003","stateId":"first","stateName":"first","url":"/"},
"003":{"viewId":"003","index":1,"historyId":"root","backViewId":"002","forwardViewId":"004","stateId":"second","stateName":"second","url":"/second"},
"004":{"viewId":"004","index":2,"historyId":"root","backViewId":"003","forwardViewId":null,"stateId":"third","stateName":"third","url":"/third"}}
BACK=
{"viewId":"003","index":1,"historyId":"root","backViewId":"002","forwardViewId":"004","stateId":"second","stateName":"second","url":"/second"}
但在第四页上,使用 ion-tabs
,查看历史保持不变。
VIEWS=
{"002":{"viewId":"002","index":0,"historyId":"root","backViewId":null,"forwardViewId":"003","stateId":"first","stateName":"first","url":"/"},
"003":{"viewId":"003","index":1,"historyId":"root","backViewId":"002","forwardViewId":"004","stateId":"second","stateName":"second","url":"/second"},
"004":{"viewId":"004","index":2,"historyId":"root","backViewId":"003","forwardViewId":null,"stateId":"third","stateName":"third","url":"/third"}}
BACK=
{"viewId":"003","index":1,"historyId":"root","backViewId":"002","forwardViewId":"004","stateId":"second","stateName":"second","url":"/second"}
这是使用 ion-tabs
时 $ionicHistory
的错误还是我在选项卡 View 中做错了什么?
最佳答案
尝试包裹 ion-tabs 来避免这个问题
<ion-view>
<div>
<ion-tabs class="tabs-balanced">
<ion-tab title="Tab One">
<ion-header-bar class="bar-balanced">
<div class="buttons">
<button class="button button-icon ion-ios-arrow-back" ng-click="prev()"></button>
</div>
<h1 class="title">Page 4 - Tab 1</h1>
</ion-header-bar>
<ion-content class="has-header">
<h3>History</h3>
<p>{{data}}</p>
</ion-content>
</ion-tab>
<ion-tab title="Tab Two">
<ion-header-bar class="bar-balanced">
<div class="buttons">
<button class="button button-icon ion-ios-arrow-back" ng-click="prev()"></button>
</div>
<h1 class="title">Page 4 - Tab 2</h1>
</ion-header-bar>
<ion-content class="has-header">
<p>Content of tab 2.</p>
</ion-content>
</ion-tab>
</ion-tabs>
</div>
</ion-view>
关于javascript - $ionicHistory 不适用于 ionic 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035126/
我在清除 $ionicHistory 时遇到了一些问题. 如上所示,当用户在付款屏幕上点击确定时,我想清除应用程序的整个查看历史记录并将用户重定向到 em>附近屏幕。 需要清除用户从支付屏幕到达的附近
我从一个不是tab的页面跳转到tab页。 在tab页,点击item后想返回。我使用 $ionicHistory.goBack() 返回。 我发现一个奇怪的情况,第一次$ionicHistory.goB
我想跟踪用户以前所在的页面而不是当前页面。 我试图使用 $ionicHistory.viewHistory() 但我可以设法得到它。我是 angularjs 和 $ionic 的新手,所以我想这是一个
我想从历史记录中删除以前的状态,这样点击后退将使用户返回两个状态。这是我所做的。 app.controller('postBlogCtrl', function($scope, $state, $ht
在我的 ionic 应用程序中,我想实现后退按钮功能,因为我正在使用 $ionicHistory 这样的 in js file $scope.goBack = function() { $ionic
我做了一个小实验:http://codepen.io/hawkphil/pen/NqMomm?editors=101 这是我的状态流程(点击按钮):Home -> Fact1 -> Fact2 ->
我有一个使用 Ionic/Cordova 构建的简单应用程序。在每个页面中,我想创建一个简单的“返回” block 按钮 - 用户可以按下它以转到应用程序中的上一页。 我正在考虑使用 $ionicHi
我在使用 $ionicHistory 时遇到问题在使用 ion-tabs 的页面上。我使用它导航到上一个 View (使用 goBack())。当我在 View 中放置选项卡时,历史是错误的,后 Vi
我正在尝试在我的代码中实现注销。这是我在 Controller 中尝试过的 .controller('menu', function($scope,$state) { $scope.gotoLogou
我正在使用 Ionic Framework 开发 Android 应用程序。 其中,我有三个 View :view1、view2 和 view3。 导航就像view1 -> view2 -> view
长话短说 有没有办法使用 $ionicHistory.goBack(-2) 更改我要返回的状态的 $stateParams? 我正在使用 Ionic 开发一个小应用程序,但我遇到了以下问题: 我有几个
我正在尝试在 Angularjs/Ionic 应用程序的 Controller 中使用 $ionicHistory.goBack() 。当我尝试将其注入(inject)我的 Controller 时,
这是我的代码 .controller("HomeCtrl", function ($scope,$ionicHistory,SearchService) { $scope.history = $i
我是一名优秀的程序员,十分优秀!