Ionic如何以编程方式返回状态
Ionic how to go back state programmatically
我有一个返回按钮,当我点击ng-click='goBack()'
。我可以看到在浏览器的url从http://app:8888/#/main/payments到http://app:8888/#/main/products/7的变化,这是正确的路径,我想回去,但问题是,视图没有过渡到那里。
我必须点击刷新按钮,以便去那里或在$ionicHistory.goBack();
后做一个window.location.reload。
我不想重载整个页面我想把这个视图转换到前一个。
这是我的html
<div class="row">
<div class="col col-25">
<button ng-click="goBack()" class="button button-large button-block button-royal">Go Back</button>
</div>
</div>
这是我的控制器
.controller('paymentsController', function($scope, $localStorage, $log, $state, $window, $ionicHistory){
$scope.goBack = function(){
$ionicHistory.goBack();
}
})
这是我的app.js我不知道这是否有帮助。
// Ionic Starter App
// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngStorage'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.config(function($stateProvider, $urlRouterProvider){
//$ionicConfigProvider.views.transition('none');
$urlRouterProvider.otherwise('/');
$stateProvider
.state('login',{
url: '/',
templateUrl: 'templates/login.html',
controller: 'loginController'
})
.state('main', {
url: '/main',
templateUrl: 'templates/main.html',
controller: 'mainController',
abstract: true
})
.state('main.categories', {
url: '/categories',
views: {
'categories': {
templateUrl: 'templates/categories.html',
controller: 'categoriesController'
}
}
})
.state('main.products', {
url: '/products/:productId',
views: {
'products': {
templateUrl: 'templates/products.html',
controller: 'productsController'
}
}
})
.state('main.payments', {
url: '/payments',
views: {
'payments': {
templateUrl: 'templates/payments.html',
controller: 'paymentsController'
}
}
})
})
从你想要返回的控制器调用它。
var backCount = 1;
$rootScope.$ionicGoBack();
$rootScope.$ionicGoBack = function(backCount) {
$ionicHistory.goBack(backCount);
};
使用$state重定向到特定视图:
$state.transitionTo('main');
这里的'main'是你在urlrouterprovider中定义的视图名。
或
也可以使用$location
$location.path('main');
别忘了在你的控制器参数中添加$state或$location
相关文章:
- 当用户返回 UC 浏览器时,如何以编程方式禁用缓存
- 从包含在for循环中的递归返回值的正确方式
- 这是显示javascript函数返回值的最佳方式吗
- React 和 HTML Select-component 返回 String 而不是 Integer 的最佳方式
- Javascript:调整base64图像的大小并以非异步方式返回字符串
- Jquery 返回元素的 .width() 取决于元素的找到方式
- thenEvaluate()是否以与evaluate()相同的方式返回
- 从以另一种方式编写的输入中返回一个字符串
- 什么'返回Obj.key1.key2..keyN的最佳方式
- 使用C#以编程方式返回Javascript管理的cookie
- 返回输入值的最佳方式
- JS对象toString()返回constructor.name和我无法以任何其他方式检索的数据
- 对嵌套数组进行排序的最佳方式(返回值与sort&math.max)
- MVC3控制器操作以编程方式返回一个失败的发布请求
- 以无限滚动的方式返回到相同的位置
- 方法以某种方式返回容易出错的数组
- Extjs ajax请求以无序的方式返回
- Ionic如何以编程方式返回状态
- 谷歌地理编码——解析可能以不同方式返回的address_components
- Javascript和/或jQuery可以通过这种方式返回对象吗