gpt4 book ai didi

javascript - $location.path 更改路径,不导航,但刷新时显示两次 [Ionic]

转载 作者:行者123 更新时间:2023-12-03 05:07:34 24 4
gpt4 key购买 nike

我尝试在成功登录后导航到某个页面。登录页面是通过inappbrowser调用的网页。现在,当 inappbrowser 成功验证用户身份时,它应该导航到该 View 。

我使用了 $location.path 并且它正确地更改了路径。但是,它在加载时不会在设备上显示。(尽管它在 Chrome 上正确显示)

但是,当我添加 window.location.reload(true) 语句时,它会加载所需的页面,然后再次加载。

如何停止重新加载两次?

.service('LoginService',function($q,$rootScope,$cordovaInAppBrowser,$http,$state,jwtHelper,$location) {
return {
loginUser: function() {
var deferred = $q.defer();
var promise = deferred.promise;
$cordovaInAppBrowser.open(url).then(function(event) {
console.log(event);
// success
})
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
if(userIsValid){
deferred.resolve(username); //Here i validate the user and change the location
$location.path('app/playlists');
}
}

promise.success = function(fn) {
promise.then(fn);
return promise;
}
promise.error = function(fn) {
promise.then(null, fn);
return promise;
}
return promise;
}
}

现在,在 app.js 中

 .state('app.playlists', {
url: '/playlists',
views: {
'menuContent': {
templateUrl: 'templates/playlists.html',
controller: 'PlaylistsCtrl'
}
}
})

现在,在 LoginController 中

.controller('LoginCtrl', function($scope,$timeout,$rootScope,LoginService,  $ionicPopup, $state,$location) {
$scope.login = function() {
LoginService.loginUser().success(function(data) {
console.log(data);
}).error(function(data) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
});
});

}

})}

最佳答案

您不应该使用window.location.reload。您应该包含 $location 模块并执行 $route.reload() 来重置您的状态路由器。您还可以尝试使用 $state.reload(); $state.go($state.current, {}, {reload: true});

我知道在基于路由的导航时 IONIC 缓存存在问题,请检查一下 $ionicConfigProvider.views.maxCache(0); 它应该添加到配置 IONIC 的位置。

关于javascript - $location.path 更改路径,不导航,但刷新时显示两次 [Ionic],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41964393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com