InternalError:过多的递归<div ng-view =“”class =“ng-scope”>

时间:2018-02-02 07:36:38

标签: javascript angularjs angularjs-ng-route

我是angularJS的新手。我坚持上面的错误。我的index.html

<body ng-app="myApp">
    <div ng-view></div>
    <a href="table">click</a>

    <script src="./libs/angular.js"></script>
    <script src="./libs/angular-route.js"></script>
    <script src="./scripts/myscript.js"></script>
</body>

这是我的脚本文件

    var app=angular.module("myApp",['ngRoute']);

app.config(['$routeProvider',function($routeProvider){
    console.log("i am routeprovider");
    $routeProvider.when('/',{
        templateUrl:"index.html"
    }).when('/table',{
        templateUrl:"..//views//firstview.html"
    }).otherwise({
        redirectTo: 'google.com'
    })

}])

在我的本地服务器上运行index.html后,我在控制台中出现以下错误

InternalError: too much recursion Stack trace: [object Object] <div ng-view="" class="ng-scope">

见附图。

enter image description here

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

发生此错误是因为您已将templateUrl设置为index.html,而index.html实际上也是您的父模板。

解析路径时,'/'angular会将模板index.html注入容器<div ng-view></div>。注入的模板也有ng-view容器。因此,角度会一遍又一遍地执行此操作,并且无法进行无休止的递归。

您可以通过为此templateUrl定义另一个部分视图来解决此问题。 defaultview.html。

代码

$routeProvider.when('/',{
    templateUrl:"..//views//defaultview.html"
}).when('/table',{
    templateUrl:"..//views//firstview.html"
}).otherwise({
    redirectTo: '/'
})