这是我开始学习AngularJS
后的第二天。添加一些路线后我的观点没有加载,我不知道为什么。这些是我的代码。
<!doctype html>
<html ng-app="myApp">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<script src="https://code.angularjs.org/1.4.5/angular.js"></script>
<script src="angular-route.js"></script>
<script src="app/controllers/app.js"></script>
<script src="app/controllers/customersController.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
angular.module('myApp', ['ngRoute'])
.config(function ($routeProvider) {
'use strict';
$routeProvider
.when('/', {
controller: 'CustomersController',
templateUrl: 'app/views/customers.html'
})
.otherwise( { redirectTo: '/' });
});
<h3>Customers</h3>
Filter: <input type="text" ng-model="customerFilter.name" />
<br/><br/>
<table>
<tr>
<th ng-click="doSort('name')">Name</th>
<th ng-click="doSort('city')">City</th>
<th ng-click="doSort('orderTotal')">Order Total</th>
<th ng-click="doSort('joined')">Joined</th>
</tr>
<tr ng-repeat="cust in filtered = (customers | filter:customerFilter | orderBy:sortBy:reverse)">
<td>{{ cust.name | uppercase }}</td>
<td>{{ cust.city }}</td>
<td>{{ cust.orderTotal | currency:'PLN' }}</td>
<td>{{ cust.joined | date}}</td>
</tr>
</table>
<span> Total customers: {{ filtered.length }} </span>
angular.module('myApp', ['ngRoute'])
.controller('CustomersController', function ($scope) {
'use strict';
$scope.sortBy = 'name';
$scope.reverse = false;
$scope.customers = [
{
joined: '2005-09-07',
name: 'Mayweather',
city: 'Brooklyn',
orderTotal: '43.1299'
},
{
joined: '2005-09-07',
name: 'Jason',
city: 'Cleveland',
orderTotal: '89.8933'
},
{
joined: '1999-08-27',
name: 'Jade',
city: 'Wroclaw',
orderTotal: '77.0092'
},
{
joined: '2015-09-01',
name: 'David',
city: 'Accra',
orderTotal: '13.8465'
},
{
joined: '2001-01-18',
name: 'Doyet',
city: 'Paris',
orderTotal: '23.9930'
}];
$scope.doSort = function (propName) {
$scope.sortBy = propName;
$scope.reverse = !$scope.reverse;
};
});
这是我的树形结构:
.
├── angular-route.js
├── angulars.js
├── app
│ ├── controllers
│ │ ├── app.js
│ │ └── customersController.js
│ └── views
│ └── customers.html
├── index.html
└── zextra
├── helloworld.html
└── ngrepeat.html
4 directories, 8 files
(zextra
文件夹无关紧要)
这是我在控制台中遇到的错误:
empty. nothing!
为什么我没有在浏览器中看到任何内容并且没有错误的任何想法?
编辑: 在Pankaj Parker的帮助下修复了主要错误后编辑的问题。
答案 0 :(得分:4)
angular-route.js
访问app.js
模块,则应在ngRoute
之前加载 angular-route.js
。目前它不可用,这就是上面的代码抛出[$injector:modulerr]
错误的原因。
更改强>
<script src="https://code.angularjs.org/1.4.5/angular.js"></script>
<script src="angular-route.js"></script>
<script src="app/controllers/app.js"></script>
<script src="app/controllers/customersController.js"></script>
确保
angular.js
&amp;angular-route.js
应该具有相同的版本,两者都应该在版本1.4.5
上。
<强>更新强>
customersController.js
不应再次创建模块&amp;你应该使用myApp
更改
angular.module('myApp', ['ngRoute'])
到
angular.module('myApp')
答案 1 :(得分:1)
拼错,也许?
<script> src="angular-route.js"</script>
应该是:
<script src="angular-route.js"></script>
:)
答案 2 :(得分:1)
错误表示ngRoute不可用。 ngRoute由angular-route.js提供。
您的脚本声明:
<script> src="angular-route.js"</script>
不指定src作为属性,而是以javascript执行。
应该是:
<script src="angular-route.js"></script>
答案 3 :(得分:0)
在1.4中有一个新的语法用于在其他地方使用过滤集合
item in items | filter : x | orderBy : order | limitTo : limit as results