2016-09-06 4 views
3

angularJS를 처음 사용합니다. 나는 몇 가지 예를 시도해 보았고 매우 까다로운 오류를 만났다. RangeError를 알아 내는데 몇 시간을 보냈지 만 그것을 극복하지 못했습니다. 누가이 함정에서 빠져 나올 수있게 도와 줄 수 있니? show_order.html에서 add_order.html라우팅 원인 최대 호출 스택 크기 초과

<h2>Add New Order</h2> 

{{ message }} 

에서 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> 

에서 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'; 

}); 

에서

<h2>Show Orders</h2> 

{{ message }} 
,174,

또한 js 및 html 파일을 저장하는 폴더의 잘못된 소스 디렉토리로 인해 RangeError가 발생합니까?

이 크롬 콘솔 enter image description here

+0

전체 오류 메시지를 게시 할 수 있습니까? – SteamDev

+0

@SteamDev 오류에 대한 스크린 샷을 추가합니다. 나는 그것을 죽이지 않는 한 프로그램을 멈출 수 없다. – pipi

+0

당신은 재귀 적으로 일부 함수를 호출하고 있습니다. 더 많은 코드를 게시 할 때까지 문제가 무엇인지 판단 할 수 없습니다. 가장 쉬운 방법은 재현 가능한 테스트 케이스가있을 때까지 조각을 제거하는 것입니다. 이 운동을하는 동안 재귀를 경험할 가능성이 있습니다. – Adam

답변

3

나는 당신으로 인해 경로에 index.html을해야합니다 app.js를 포함 index.html을 아마 /,로 탐색 할 생각에 표시 오류입니다, app.js 등이 필요합니다./html 파일을 다른 html 파일 (home.html이라고 부름)에 넣고 /에 대한 템플릿을/home.html으로 변경해야 할 수도 있습니다.

0

나는 또한 같은 문제. 그런 다음 'head'태그에 'script'태그를 넣으려고했습니다. 지금은 잘 작동합니다.

<!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

비슷한 문제/오류가 발생했습니다. 나에게 도움이 된 것은 #의 경로를 사용했다는 것입니다. 즉이 부분을 제거합니다.

$locationProvider.html5Mode({ 
      enabled: true, 
      requireBase: false 
}); 
관련 문제