我定义了以下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
} ]
我正在使用AngularJS 1.1.4和Chrome。
我的资源定义有什么问题?
答案 0 :(得分:4)
使用$resource
这样的数据结构真的没什么意义。问题是$resource
对于使用所有HTTP谓词的RESTful端点非常有用。为了方便起见,AngualarJS使用便捷方法扩展了传入的对象($ save,$ delete等)。如果您返回原语,则没有扩展空间,$resource
的一个主要好处就消失了。
简而言之:如果您刚刚获取数据$资源是一种过度的IMO,请坚持使用$http
。