即使在html5mode为false时,也会出现Angular1.3路由的直接URLS问题

时间:2015-02-15 10:52:51

标签: javascript angularjs routes

如果我浏览链接,我可以打开相应的视图,但如果我复制粘贴整个网址,则视图无法加载&控制台没有错误。

这是主应用模块的配置,

.config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) {

        $routeProvider
                .when('/welcome', {
                    templateUrl: 'src/app/welcome/welcome.html'
                })
                .when('/terminology', {
                    controller: 'TermsController',
                    controllerAs: 'vm',
                    templateUrl: 'src/app/terminology/term-table.html'
                })
                .when('/', {
                    redirectTo: '/welcome'
                })
                .otherwise({
                    redirectTo: '/welcome'
                });

                $locationProvider.html5Mode(false);
    }]);;

例如: 1.如果我点击主页链接,欢迎视图将在ng-view中加载,URL将变为(URL1)" http://localhost:8081/web/#/welcome"

  1. 如果我点击术语链接,术语视图将加载到ng-view&该网址变为(网址2)" http://localhost:8081/web/#/terminology"
  2. 但如果我复制粘贴整个网址在新标签页中,则视图将变为空白。控制台中没有错误。我使用的是Angular1.3

    增加: 而且,第一次也没有加载默认视图... 提前致谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。 我的实际index.html文件是这样的

<html class="no-js" lang="en" ng-app="app">
<head>  
    <!-- my css files -->
</head>
<body>
    <!-- this shell page contains "ng-view" directive which is causing the whole problem -->
    <div ng-include="'src/app/igl-layout/shell.html'"></div>

    <!-- my js files -->
</body>

现在我将shell.html的内容替换为上面的ng-include指令(行),然后一切正常。

谁能告诉我为什么会这样? 如果ng-view在shell页面内,它不能按预期工作,但如果它在index.html页面中工作正常。