使用$location重定向到AngularJS中的新页面

使用$location重定向到AngularJS中的新页面,angularjs,redirect,Angularjs,Redirect,我正在使用以下AngularJS$位置进行测试。我不知道这有什么问题。只想检查重定向是否正常: HTML <body data-ng-controller="MainCtrl"> Hello {{name}}! <button ng-click='go()'>Go</button> </body> 线路 $location.absUrl() == 'http://www.google.com'; 这是错误的。首先==进行比较,您可能

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

HTML

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

$location.absUrl() == 'http://www.google.com';
这是错误的。首先==进行比较,您可能要做的是赋值,它是使用simple=而不是double==

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


参考:.$location

尝试在函数中输入url

$location.url('http://www.google.com')

$location对外部URL没有帮助,请改用$window服务:

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

请注意,您可以使用window对象,但这是一种不好的做法,因为$window很容易被模仿。

如果要更改ng视图,则必须使用“#”

它可能会帮助你

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;
    };
});
<div ng-app="urlApp">
    <div ng-controller="urlCtrl">
        Redirect to <a href="#" ng-click="ClickMeToRedirect()">Click Me!</a>
    </div>
</div>
HTML代码示例

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;
    };
});
<div ng-app="urlApp">
    <div ng-controller="urlCtrl">
        Redirect to <a href="#" ng-click="ClickMeToRedirect()">Click Me!</a>
    </div>
</div>

重定向到

这在指令中对我有效,并且在不刷新baseurl的情况下工作(只添加端点)。适用于具有路由机制的单页应用程序

  $(location).attr('href', 'http://localhost:10005/#/endpoint') 

是否有输入错误,应该是您可以始终使用的:window.location=''我没有使用'=''。同样在文档示例中,他们指定的“==”也不起作用!!!absURL是只读的$位置服务为URL的只读部分(absUrl、协议、主机、端口)提供getter方法,为URL、路径、搜索、哈希提供getter/setter方法。这不起作用(至少在Angular 1.2.8中是这样),它只是附加
http://www.google.com
链接到URL<代码>$window.location.href似乎可以正常工作。使用$window而不是window,感觉不错。这应该是可以接受的答案。$window是使用$window功能需要添加的一个额外模块?@GK123512648无需,它位于核心ns模块中,正如官方文件中所述,我必须使用
$window.location=…
,但没有
.href
。当我使用它时,会产生以下错误(尽管它有效):JavaScript运行时错误:[$rootScope:infdig]10$digest()已达到迭代次数。流产!或者只需调用$location.path(“/which/the/path/is”)