73

我正在使用以下 AngularJS $location 进行测试。我不知道这有什么问题。只想检查重定向是否有效:

HTML

<body data-ng-controller="MainCtrl">
   Hello {{name}}!
   <button ng-click='go()'>Go</button>
</body>

AngularJS 代码

var app = angular.module('location', []);
   app.controller('MainCtrl', function($scope,$routeParams, $location) {
   $scope.name = 'World';
   $scope.go = function() {
   $location.absUrl() = 'http://www.google.com';
   }
});
4

6 回答 6

145

$location 不会帮助您处理外部 URL,请改用 $window 服务:

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

请注意,您可以使用 window 对象,但这是不好的做法,因为 $window 很容易模拟而 window 不是

于 2014-01-14T11:42:05.973 回答
10

如果你想改变 ng-view,你必须使用 '#'

$window.location.href= "#operation";
于 2014-05-13T19:59:30.110 回答
6

线

$location.absUrl() == 'http://www.google.com';

是错的。首先 == 进行比较,您可能想要做的是一个赋值,它是简单的 = 而不是双 ==。

因为 absUrl() 只有吸气剂。您可以使用 url(),如果需要,它可以用作 setter 或 getter。

参考:http ://docs.angularjs.org/api/ng .$location

于 2013-09-18T15:04:42.303 回答
6

它可能对你有帮助!

AngularJs 代码示例

var app = angular.module('urlApp', []);
app.controller('urlCtrl', function ($scope, $log, $window) {
    $scope.ClickMeToRedirect = function () {
        var url = "http://" + $window.location.host + "/Account/Login";
        $log.log(url);
        $window.location.href = url;
    };
});

HTML 代码示例

<div ng-app="urlApp">
    <div ng-controller="urlCtrl">
        Redirect to <a href="#" ng-click="ClickMeToRedirect()">Click Me!</a>
    </div>
</div>
于 2015-06-17T10:29:30.270 回答
0

这在指令中对我有用,并且无需刷新 baseurl(只需添加端点)即可工作。适用于具有路由机制的单​​页应用程序。

  $(location).attr('href', 'http://localhost:10005/#/endpoint') 
于 2018-02-07T04:21:56.557 回答
-1

尝试在函数中输入 url

$location.url('http://www.google.com')
于 2013-09-19T09:41:53.807 回答