编辑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
});
它有效,但我希望我可以使用简写语法,有人可以解释为什么会出现这种情况吗?