我的网址如下:http://localhost:3000/family/#/savings/subscribe/123456
在这个页面中,我想点击一个按钮,将我重定向到使用主干JS制作的另一个项目的其他页面
我尝试使用href-和ng-href http://localhost:3000/admin#exemption
添加所需的URI:但它总是将我重定向到http://localhost:3000/family/#/admin#exemption
angular.module('app', ['ng', 'ngRoute', 'ui.bootstrap', 'angularMoment', 'chart.js'])
.config(fac['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/index', {
templateUrl: '/family/index',
controller: 'IndexCtrl'
})
.when('/family/exemption', {
templateUrl: 'exemption-search-view'
})
当我提供所需页面的模板时,我获取了html视图但是URI:http://localhost:3000/family/#/admin#exemption
答案 0 :(得分:2)
我不确定这个问题,但如果你想避免角度路由拦截,你应该添加你的锚目标=“_ self”。
<a ng-href="{{vm.logoutUrl}}" target="_self">Bye!</a>
答案 1 :(得分:1)
如果您的其他项目不属于您的角应用,则应重定向到其他网址。
只需使用<a href="http://localhost:yourOtherPort"></a>
。
ng-href用于附加您在网址中的哈希值后传递的网址。
答案 2 :(得分:1)
不要使用href(或任何变体)重定向,而是尝试在控制器中使用一个函数,该函数会将您重定向到新的URL。尝试这样的事情:
public static Claim GetClaim(string claimType)
{
return ClaimsPrincipal.Current.FindFirst(claimType);
}
public static string GetLoggedInUserEmail()
{
//Email comes up for Auth0
var claimEmail = GetClaim(ClaimTypes.Email);
//if claimEmail comes out to be null from ClaimTypes.Email then try it out for ClaimTypes.Name
if (claimEmail == null)
//Name comes up for Azure AD
claimEmail = GetClaim(ClaimTypes.Name);
var email = (claimEmail == null ? string.Empty : claimEmail.Value); //gets the email of the user
return email;
}
...并在你的HTML中......
// in your controller
angular.module('app', ['ngRoute'])
.controller('redirectCtrl', function($window, $location){
var vm = this;
vm.wizard = {
anotherurl: "http://example.com",
redirect: fnRedirect
}
return vm.wizard;
function fnRedirect(link){
//this way is useful if you try to redirect to an external URL
$window.location = link;
//this way is useful if you try to redirect to another route inside the same angular project
$location.path(link);
}
});
答案 3 :(得分:0)
Angular中的问题,它会将您重定向到其URL中的相同基础,因此如果您想要更改基础(在我的情况下是/ family /#/),就像您要访问外部URL一样从项目中我刚刚添加到我的控制器中:
$window.location.href ='http://localhost:3000/admin#exemption' ;
我不需要在我的&#; $ routeProvider&#39;
中进行任何更新