带有ng-view的AngularJS无限循环

tho*_*hor 2 javascript infinite-loop angularjs

我刚刚开始使用AngularJS作为我正在考虑组合的新应用程序但是在使用路由和视图时遇到了问题.

我已经将这个例子剥离到最低限度,但问题仍然存在.所有这个例子都是在点击服务器并返回index.html页面,然后该页面来源Angular等.

的index.html

<!doctype html>
<html lang="en" ng-app="main">
    <head>
        <meta charset="utf-8" />

        <link rel="stylesheet" type="text/css" src="css/style.css" />

        <script type="text/javascript" src="js/ext/angular.min.js"></script>
        <script type="text/javascript" src="js/ext/angular-route.min.js"></script>
        <script type="text/javascript" src="js/main.js"></script>
        <script type="text/javascript" src="js/test.js"></script>

        <base href="/ui/">
    </head>
    <body>
        <div ng-view></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

main.js

(function() {
    var app = angular.module('main', ['ngRoute', 'test']);

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

        $routeProvider
            .when('/test', {
                templateUrl: 'html/test.html',
                controller: 'TestCtrl'
            })
            .otherwise({
                redirectTo: '/test'
            });

        $locationProvider.html5Mode(true);
    }]);
})();
Run Code Online (Sandbox Code Playgroud)

test.js

(function() {
    var app = angular.module('test', []);

    // get hierarchy
    app.controller('TestCtrl', ['$scope', function($scope) {

        alert('here');

    }]);
})();
Run Code Online (Sandbox Code Playgroud)

的test.html

<div>FooBar!</div>
Run Code Online (Sandbox Code Playgroud)

警报无限激发,但我不知道为什么.我已经看过其他示例,其中ng-view和routing似乎使用完全相同的方式,所以我不确定我做错了什么...

ser*_*gio 6

我前段时间遇到同样的问题.请在开发人员工具面板的同一浏览器中使用firebug或某些网络控件,您可以在其中查看向服务器请求资源的请求,然后检查是否已请求并正确检索test.html文件.似乎唯一被检索的是index.html,因此,循环.

可能你必须使用此templateUrl值"/html/test.html"和"/"之前.本地化此资源.

这是我提议你的想法.使用正确的方法本地化test.html资源.我希望这可以帮到你.