ng-route我希望在$ routeProvider缺少路由时重定向到服务器

时间:2016-07-21 17:45:45

标签: angularjs asp.net-mvc single-page-application ngroute route-provider

我有一个asp.net MVC应用程序,我正在尝试应用迷你水疗中心

我的角度js setp:

appNg.config(function ($routeProvider, $locationProvider) {
$routeProvider
    .when("/AccountManager/UserLogin", {
        templateUrl: "/App_ng/AccountManager/Views/AccountManagerUserLoginView.html",
        controller: "accountManagerUserLoginController",
    })
    .when("/AccountManager/UserSignup", {
        templateUrl: "/App_ng/AccountManager/Views/AccountManagerUserSignupView.html",
        controller: "accountManagerUserSignupController",
    });

$locationProvider.html5Mode(true);

console.log("Config.Complete: appNg");

});

我在head标签的_layoutpage中的baseref(在顶部)

   <base href="/" />

我在布局页面上的链接:

WORKING:
<a href="/AccountManager/UserSignup"><i class="fa fa-sign-in"></i> <span>ng UserSignup</span></a>
<a href="/AccountManager/UserLogin"><i class="fa fa-sign-in"></i> <span>ng UserLogin</span></a>
<a href="http://cnn.com"><i class="fa fa-sign-in"></i> <span>CNN.COM</span></a>
NOT WORKING:
<a href="/AngTestRoute/about2"><i class="fa fa-sign-in"></i> <span>ng About2</span></a>

前3个链接按预期工作,但最后一个链接没有,浏览器网址栏中的地址发生变化,但页面保持不变。

我希望angular忽略该路由并让我调用服务器来获取新页面,以便我可以加载包含与新地址相关的迷你spa的新页面。由于$ routeProvider路由中不存在不工作的地址,我希望angular不会过滤地址。我该如何解决这个问题?

是的,我知道我可以在a标签上使用target _blank但是这不能完成(从我的试验中),因为这会产生链接的问题,这些链接应该在特定的迷你中以角度过滤温泉浴场。

我也读过AngularJS - How can I do a redirect with a full page load?但没有成功。

1 个答案:

答案 0 :(得分:0)

这个经常咬我。我们使用ui-router,但我认为ngRoute是一样的。在您的锚标记中尝试target="_self"

<a target="_"self" href="/AngTestRoute/about2"><i class="fa fa-sign-in"></i> <span>ng About2</span></a>

浏览一些我自己的项目,我想我也使用完全合格的网址,而不仅仅是路径。也许

<a target="_"self" href="http://myserver/mybasepath/AngTestRoute/about2"><i class="fa fa-sign-in"></i> <span>ng About2</span></a>