undefined不是使用$ resource的函数

时间:2015-05-18 09:14:31

标签: javascript angularjs

编辑1 :这是page我遇到的问题。

编辑2 :标记为重复。 $scope.currentDirectory包含$ resource的单个实例,shorthands仅用于更新资源。因此,在单个实例上使用isArray会破坏资源和服务器的对称表示。

我正在尝试使用 angularjs php 制作RESTful应用程序。当我使用/api/directories/[0-9]*作为 http方法请求CHILDS时,我会得到一个json,表示URL所针对的目录中包含的目录。

app.factory('Directory', function ($resource) {
return $resource('/api/directories/:id', {id:'@id'}, {
    childs: {
      method : 'CHILDS',
      isArray: true 
    }
})
});

如果我写:

$scope.currentDirectory = Directory.get({id:1});

一切都很棒, currentDirectory 的信息显示在视图中。

但是当我尝试使用简写语法请求孩子时,

$scope.childsOfCurrent = $scope.currentDirectory.$childs();

angular会抛出错误: undefined不是函数

我试图更改动作的属性,如

childs: {
      method : 'CHILDS',
      isArray: true,
      transformResponse: function () {}
}

当然错误已被删除,但$scope.childsOfCurrent现在只包含承诺对象。

无论如何,如果我明确写,

$scope.childsOfCurrent = Directory.childs({
  id: $scope.currentDirectory.id
});

它有效,但我希望我可以使用简写语法,有人可以解释为什么会出现这种情况吗?

0 个答案:

没有答案