在尝试了所有我能想象的东西,并在这里阅读了几篇文章后,我想我需要你的帮助! 我有一个基于节点的webapp和服务器上的express和客户端上的Angular。我正在使用角度路由。
基本信息
我的路由设置如下:
mainApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'initial.ejs',
controller: 'controllerInitialView'
})
.when('/home/post', {
templateUrl: 'post.ejs',
controller: 'controllerAddPost'
})
.... other /home/something routes ..
.otherwise({
redirectTo: '/home'
});
}
]);
html模板的组织如下:
<div class="container-fluid">
<div class="row">
<!-- Left Columns: With links to views -->
<div class="col-xs-2 home-bd-dx">
<ul>
<li>
<a href="/home/post"> Post </a>
</li>
...
<li>
<a href="/logout"> Logout </a>
</li>
</ul>
</div>
<!-- Central Columns: Here the views are inserted -->
<div class="col-xs-10">
<div ng-view></div>
</div>
</div>
</div>
问题在于Logout链接。我有一个服务器serverapp.get('/logout')
链接,它使用passport.js注销用户。但是,我无法达到该链接。无论我尝试将我的/logout
转换为/home/logout
,它都由Angular而不是服务器处理。
问题
所以这就是问题:如何在没有Angular路由器拦截它们的情况下在Angular中创建端点路由的链接?
如果需要,还有其他信息
快速服务器有一个路由serverapp.get('/home/*')
,它通过返回我在上面描绘的模板将这些路由委托给Angular.js。
我在<base href="/home">
中使用<head>
标签尝试了没有运气
我尝试创建路径'/ home / logout',然后在$window.location.href="/logout";
的控制器中设置角度/home/logout
。在这种情况下也没有运气。
答案 0 :(得分:0)
如果我理解正确,您尝试执行的操作就是禁用某些网址的深层链接。您可以通过将target="_self"
添加到<a>
代码来实现这一目标。
试试这个:
<a href="/logout" target="_self">Logout</a>
现在,链接所指向的URL将由服务器而不是Angular处理。