Javascript Angular.js中超出了最大调用堆栈大小

Javascript Angular.js中超出了最大调用堆栈大小,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,各位! 为了在Angular.js中扩展$routeProvider,我尝试进行递归。这是我尝试实现的代码: var pages = { 'home': { 'url': '/', 'partialName': 'index', 'link': partialDir + this.partialName + pageFormat, 'controllerName': this.partialName + 'Controller', 'pageTitle':

各位!

为了在Angular.js中扩展$routeProvider,我尝试进行递归。这是我尝试实现的代码:

var pages = {
'home': {
    'url': '/',
    'partialName': 'index',
    'link': partialDir + this.partialName + pageFormat,
    'controllerName': this.partialName + 'Controller',
    'pageTitle': 'Welcome home'
},
'page': {
    'url': '/page',
    'partialName': 'page',
    'link': partialDir + this.partialName + pageFormat,
    'controllerName': this.partialName + 'Controller',
    'pageTitle': 'Page'
},
'page2': {
    'url': '/page2',
    'partialName': 'page2',
    'link': partialDir + this.partialName + pageFormat,
    'controllerName': this.partialName + 'Controller',
    'pageTitle': 'Page2'
}

angular.forEach(pages, function(value, key) {
    console.log(value);

    $routeProvider.when(value.url,{
        templateUrl: value.link
    })
});

$locationProvider.html5Mode({
    enabled: true,
    requireBase: false
});
我得到

超过最大调用堆栈大小

我怎样才能解决这个问题

未捕获异常异常函数@angular.js:12450ident.$get@angular.js:9237invokeLinkFn@angular.js:8782nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.jsangular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angularangular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780CompositeLinkFn@angularangular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular.js:935$animateangular route.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$getangular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular:angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angularangular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular-route.js:935$animate.link@angular-route.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angularangular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angularangular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780CompositeLinkFn@angularangular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular.js:935$animateangular route.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690con trollersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:82angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307更新@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angular.js:8780NodeLnkFn@angular.js:8280CompositeLnkFn@angular.js:7671publicLinkFn@angular.js:75angular route.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular.js:900invokeLinkFn@angularangular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:830angular route.js:935$animate.link@angular route.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671publicLinkFn@angular.js:7546$route.link@angular.js:985invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:angular.js:7546name.$get.boundTranscludeFn@angular.js:7690controllersBoundTransclude@angular.js:8307update@angular route.js:935$animate.link@angular route.js:900invokeLinkFn@angular.js:8780nodeLinkFn@angular.js:8280compositeLinkFn@angular.js:7671 6 Angular.js:12450 RangeError:超出最大调用堆栈大小 在函数本地
在Object.ASTCompiler.compile中,根据您提供的调用堆栈,一个或多个页面模板似乎包含ng view指令。ngRoute只允许在主布局页面中定义一个ng视图。

抛出错误时,调用堆栈是什么样子的?页面是什么样子的?@charliefl我已更新问题。您尝试的对象初始化无效。您不能在对象初始值设定项中使用它来引用正在创建的对象的其他部分;对象初始值设定项不是这样工作的。您有多少个ng视图?确保加载到ng视图中的模板没有定义任何其他ng视图。我检查了两次。只有一个ng view指令。