2

我定义了以下 ngResource:

angular.module('LicenseServices', ['ngResource']).
    factory('License', function ($resource) {
        return $resource('api/licenses/:id', { id: '@id' }, {
            //...
            'getLicenseTypes': { method: 'GET', url: 'api/licenses/types', isArray: true }
        });
    });

GET 请求的结果是:

["Trial","Standard"]

但是在控制器中使用资源:

$scope.licenseTypes = License.getLicenseTypes()

我得到以下结果:

licenseTypes: 
[ undefined, { 
0: S
1: t
2: a
3: n
4: d
5: a
6: r
7: d
 } ]

我在 Chrome 中使用 AngularJS 1.1.4。

我的资源定义有什么问题?

4

1 回答 1

4

$resource使用这样的数据结构真的没有多大意义。事情是$resource非常适合使用所有 HTTP 动词的 RESTful 端点。为了让这个简单,AngularJS 使用方便的方法($save、$delete 等)扩展传入的对象。如果您返回原语,则没有扩展空间,并且其主要好处之一$resource就消失了。

简而言之:如果您只是在获取数据之后 $resource 是一个矫枉过正的 IMO,请坚持使用$http

于 2013-05-02T17:20:56.140 回答