所以我正在试验Angular。我创建了以下模块。
var archiveModule = angular.module('archiveModule', ['ngResource']);
archiveModule.factory('Archive', ['$resource',
function($resource) {
return $resource('/data/archive/:doc.json', {}, {
query: { method:'GET', params:{ doc: undefined }, isArray:true }
});
}]);
archiveModule.controller('ArchiveControl', ['$scope', '$http', 'Archive',
function ($scope, Archive) {
$scope.items = Archive.query();
$scope.orderProp = 'name';
}]);
我的模板一切都发生在:
<div class="container" ng-app="archiveModule">
<div ng-controller="ArchiveControl">
我在页面底部包含角度脚本:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular-resource.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular-route.js"></script>
而Chrome报告TypeError: undefined is not a function
,它又回到了$scope.items = Archive.query();
行。
根据 http://docs.angularjs.org/api/ngResource.$resource 的说法,查询是$resource的一部分,我根据我的资源建模 http://docs.angularjs.org/tutorial/step_11 我不确定这里出了什么问题。
参数与声明的依赖项不一致。它正在为Archive
注入$http
...
archiveModule.controller('ArchiveControl', ['$scope', '$http', 'Archive',
function ($scope, Archive) {
删除'$http'
,它应该可以工作...
archiveModule.controller('ArchiveControl', ['$scope', 'Archive',
function ($scope, Archive) {
$scope.items = Archive.query();
$scope.orderProp = 'name';
}]);