Javascript query()与Angular$resources始终“;未定义不是一个函数”;

Javascript query()与Angular$resources始终“;未定义不是一个函数”;,javascript,angularjs,Javascript,Angularjs,我只是用下面的代码调用带有Ng追索权的query(),但它总是会遇到“Undefined不是函数” [demo.js] var app = angular.module('StarterApp', ['ngResource']); app.factory("resourceFactory", function($resource) { return $resource("js/demo2.json", {}, { 'get':{method:'GET'}, 'query':

我只是用下面的代码调用带有Ng追索权的query(),但它总是会遇到“Undefined不是函数”

[demo.js]

var app = angular.module('StarterApp', ['ngResource']);

app.factory("resourceFactory", function($resource) {
  return $resource("js/demo2.json", {}, {
    'get':{method:'GET'},
    'query':{method:'GET',isArray:true,url:"js/demo2.json"},
    'save':{method:'POST'}
  });
});

app.controller('appCtrl', function($scope, resourceFactory){
  'use strict';

  var ajax = new resourceFactory;
  ajax.$query(function(response) {
    console.log(response);
  });

});
[demo2.json]

[
  {"demo2":"test"}
]
[错误]

TypeError: undefined is not a function
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-resource.min.js:9:466
    at s (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:302)
    at d.module.provider.$get.e.(anonymous function).q.then.p.$resolved (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-resource.min.js:9:423)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:112:20
    at l.$get.l.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:125:305)
    at l.$get.l.$digest (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:122:398)
    at l.$get.l.$apply (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:126:58)
    at l (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:81:171)
    at S (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:85:301)
    at XMLHttpRequest.D.onload (http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:86:315)

如果我将“$get”与简单的对象返回一起使用,它就会工作。所以我不确定我的代码出了什么问题。

它应该是
resourceFactory.query
而不是
resourceFactory。$query
&而且不需要使用
新建
关键字创建对象的实例

代码

resourceFactory.query(function(response) {
   console.log(response);
});

我认为这是因为您尝试在数组上执行承诺

我遇到了同样的问题,并将WebService数组包装在JSON中 即:

而不是:

myArray
而且很有魅力

我使用同一版本的angularJS,未定义的是寻找push方法


我刚刚在GitHub上发现了这个问题,它仍然是开放的

resourceFactory.$query
将起作用,为什么会有新的
resourceFactory
@kipp很高兴帮助您,谢谢。:)仅当您有权访问API时,
myArray