2016-09-06 49 views
3

我是angularJS的新手。我試圖練習一些例子並遇到一個非常棘手的錯誤。我花了幾個小時找出RangeError,但是我沒有克服它。任何人都可以幫助我擺脫這個陷阱嗎?路由原因超過最大調用棧大小

在app.js

var sampleApp = angular.module('phonecatApp', ['ngRoute']); 

sampleApp .config(['$routeProvider','$locationProvider', 
    function($routeProvider,$locationProvider) 
    { 
    $routeProvider. 
     when('/', { 
     templateUrl: 'index.html', 
     }). 
     when('/addOrder', { 
     templateUrl: 'add-order.html', 
     controller: 'AddOrderController' 
     }). 
     when('/showOrders', { 
     templateUrl: 'show-orders.html', 
     controller: 'ShowOrdersController' 
     }). 
     otherwise({ 
     redirectTo: '/addOrder' 
     }); 
     $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
     }); 
    }]); 

sampleApp.controller('AddOrderController', function($scope) { 

    $scope.message = 'This is Add new order screen'; 

}); 


sampleApp.controller('ShowOrdersController', function($scope) { 

    $scope.message = 'This is Show orders screen'; 

}); 

index.html中

<!DOCTYPE html> 
<head> 
</head> 
    <h1>weclome to test!</h1> 
<body ng-app="phonecatApp" > 
<div ng-view></div> 

<script src="//code.angularjs.org/1.2.20/angular.js"></script> 
<script src="//code.angularjs.org/1.2.20/angular-route.js"></script> 
<script src="static/app.js"></script> 
</body> 


</html> 

在add_order.html

<h2>Add New Order</h2> 

{{ message }} 

在show_order.html

<h2>Show Orders</h2> 

{{ message }} 

另外,存儲js和html文件的文件夾的錯誤源目錄導致RangeError?

這是錯誤顯示在控制檯鉻 enter image description here

+0

您能否發佈完整的錯誤消息? – SteamDev

+0

@SteamDev我添加了我的錯誤的屏幕截圖。除非將它殺死,否則我無法停止該程序。 – pipi

+0

你正在遞歸調用某個函數。在發佈更多代碼之前,我們無法確定問題所在。要做的最簡單的事情就是開始剝離部分,直到你有一個可重複的測試用例。有機會,你會在做這個練習的時候遇到遞歸。 – Adam

回答

3

我認爲你正在瀏覽的爲/,這可能是index.html的,其中包括app.js,這將需要的index.html因路線,這將需要app.js等...您可能需要將您的/模板放在另一個html文件中(我們稱之爲home.html),然後將模板更改爲/ home.html

0

我也有同樣的問題。然後,我嘗試將'腳本'標籤放在'頭部'標籤上。現在它工作正常。

<!DOCTYPE html> 
<html> 
<head> 
    <script src="//code.angularjs.org/1.2.20/angular.js"></script> 
    <script src="//code.angularjs.org/1.2.20/angular-route.js"></script> 
    <script src="static/app.js"></script> 
</head> 
<body ng-app="phonecatApp" > 
    <h1>weclome to test!</h1> 
    <div ng-view></div> 
</body> 

</html> 
0

將路由腳本拆分到不同的文件中。

angular.module('phonecatApp').config(['$routeProvider','$locationProvider', 
 
    function($routeProvider,$locationProvider) 
 
    { 
 
    $routeProvider. 
 
     when('/', { 
 
     templateUrl: 'index.html', 
 
     }). 
 
     when('/addOrder', { 
 
     templateUrl: 'add-order.html', 
 
     controller: 'AddOrderController' 
 
     }). 
 
     when('/showOrders', { 
 
     templateUrl: 'show-orders.html', 
 
     controller: 'ShowOrdersController' 
 
     }). 
 
     otherwise({ 
 
     redirectTo: '/addOrder' 
 
     }); 
 
     $locationProvider.html5Mode({ 
 
     enabled: true, 
 
     requireBase: false 
 
     }); 
 
    }]);

則是指它在你的索引文件可能是這樣:

<script src="static/router.js"></script>

應該修復它。

+0

抱歉錯誤地發佈了整個代碼,同時糾正路由器對索引文件的引用:P –

0

我正面臨類似的問題/錯誤。對我而言,我使用的路線是。即我從app.js中刪除此部分

$locationProvider.html5Mode({ 
      enabled: true, 
      requireBase: false 
}); 
相關問題