我是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?
答案 0 :(得分:5)
我认为你正在浏览/,这可能是index.html,其中包括app.js,由于路由需要index.html,这将需要app.js等...你可能需要将你的/模板放在另一个html文件中(让我们称之为home.html),并将/的模板更改为home.html
答案 1 :(得分:0)
我也有同样的问题。然后我试着把脚本&#39;标记为&#39; head&#39;标签。现在工作正常。
<!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>
答案 2 :(得分: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>
应该修复它。
答案 3 :(得分:0)
我遇到了类似的问题/错误。对我有用的是我使用#的路线。即我从app.js
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});