$ location不会重定向到页面

时间:2017-01-17 08:11:40

标签: angularjs cordova ionic-framework

我正在尝试重定向到我的离子应用中的另一个页面,但仍然停留在这一点上。我在控制台中看到我当前的路径是我想要的但我不是真的在那个页面这里可能是代码

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
    $ionicConfigProvider.views.maxCache(0);

    $stateProvider.state('homepage', {
        url: '/homepage',
        templateUrl: 'templates/homepage.html',
        controller: 'MapController'
        })

    .state('hotel', {
        url: '/hotel',
        templateUrl: 'templates/hotel.html',
        controller: 'HotelController'
    })
})

控制器

.controller('MapController', function($scope, $location, customservice) {
    $scope.fa = function(a) { 
        customservice.hotel_name =  {hotelName: a.innerHTML}
        console.log($location.path()) // prints /homepage
        $location.path('/hotel');
        console.log($location.path()) // print /hotel but still on same page
    }
});

4 个答案:

答案 0 :(得分:3)

$ location服务允许您仅更改URL;有一段时间它没有重新加载/重定向页面。你可以尝试$ window.location.href或$ state.go(),而不是$ location.path()。可能会有用。

答案 1 :(得分:0)

我不知道如何以及为什么将它包装在$ timeout之下为我做了工作

答案 2 :(得分:0)

这是非常令人困惑的事情。 $ location仅更改url而不重新加载。 如果要重定向,则应该这样写。

$window.location.href = "http://www.google.com"

请参阅Angulardoc

When should I use $location?

Any time your application needs to react to a change in the current URL or if you want to change the current URL in the browser.
What does it not do?

It does not cause a full page reload when the browser URL is changed. To reload the page after changing the URL, use the lower-level API, $window.location.href

答案 3 :(得分:0)

尝试以下:

angular.module('windowExample', [])
.controller('ExampleController', ['$scope', '$window', function($scope, $window) {
    $window.location.href = '/hotel.html';
  };
}]);