query() with Angular $resources, "Undefined is not a function"



所以我正在试验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';
    }]);

相关内容

最新更新