Angular页面在第一次加载时会走错路线吗?

时间:2016-02-20 19:05:40

标签: angularjs asp.net-mvc routing angular-ui-router single-page-application

在我重新加载页面后,在我的角度应用程序中,即使网址指向归属路由http://localhost:8444/home,我也会得到空shell html页面而不是我的主页。

请指出我的代码有什么问题?
或者我该怎么做才能解决这个问题?

服务器端的应用包含一个带有ng-include标记

的cshtml页面
<!DOCTYPE html>
<html ng-app="app">
<head>
    @Scripts.Render("~/bundles/scripts")
    <base href="/">
    <script type="text/javascript">
        (function () {
            'use strict';
            var app = angular.module('app', ['ui.router']);
            app.config(['$stateProvider', '$locationProvider', configurRoutes]);
            function configurRoutes($stateProvider, $locationProvider) {
                $locationProvider.html5Mode(true);
                $stateProvider
                    .state(
                    'home', {
                        url: '/home',
                        template: '<div>At Home Page</div>'
                    });
            }
        })();
    </script>
</head>
<body>
    <div>
        <div ng-include="'/app/layout/shell.html'"></div>
    </div>
</body>
</html>

shell.html

<div>
In the shell
<hr/>
<a ui-sref="home"> home </a> 
<div ui-view></div>

这是第一次加载时遇到的问题我得到空的shell页面,请注意该url指向主页
enter image description here

点击回家后

按预期工作
enter image description here

更新 在我将shell.html的内容移动到cshtml后,它按预期工作但没有ng-include

1 个答案:

答案 0 :(得分:0)

尝试在stateProvider中添加一个(&#39; home&#39;)子句