使用html5mode在非根URL上使用AngularJS进行导航

时间:2014-01-13 16:06:03

标签: html5 angularjs routes

我正在尝试将AngularJS的HTML 5位置模式与位于非根URL的应用程序一起使用。不幸的是,每次点击链接时,浏览器都会进行整页导航。

这是我的设置:

  • Angular JS v1.2.2
  • 将ASP.NET MVC用于后端
  • 在/ myapp
  • 托管的根页面
  • 页面在主题部分设置了<base href="/myapp/" />
  • $locationProvider.html5Mode(true);在应用配置期间运行
  • 服务器设置为返回/ myapp /
  • 之外的所有链接的索引页面
  • 使用与HTML 5兼容的浏览器(Firefox,Chrome)

我的路由配置如下:

$routeProvider
    .when("/", {
        templateUrl: "/App/dashboard/dashboard.html",
        controller: "DashboardController"
    })
    .when("/feature", {
        templateUrl: "/App/feature/feature.html",
        controller: "FeatureController"
    });

当初始页面加载到/ myapp时,仪表板视图已加载,导航栏中的URL更改为/ myapp /,这似乎是正确的。

不幸的是,当我点击<a href='/myapp/feature'>Feature</a>之类的链接时,浏览器会向/myapp/feature发出整页请求。我认为Angular应该拦截链接并加载适当的视图。

如何在非root用户名下使用HTML 5模式阻止整页重新加载?

由于

1 个答案:

答案 0 :(得分:0)

答案结果很有趣。我让ng-app在我的ng-view上方应用了一个元素,这个元素太过分了。将应用程序应用于html元素解决了我的问题。