AngularJS $resource参数使用下划线
AngularJS $resource参数使用下划线
我有以下资源:
angular.module('resources.venue', ['ngResource']) .factory('Venue', function($resource) { return $resource('/venue/:id', { id: '@_id' },{ update: { method: 'PUT' } }); });
我像这样进行测试:
describe('Venue Resource', function() { var Venue, $httpBackend; var id = '123456789012345678901234'; beforeEach(module('resources.venue')); beforeEach(inject(function(_Venue_, _$httpBackend_) { Venue = _Venue_; $httpBackend = _$httpBackend_; })); .... it('should get one venue', function() { $httpBackend.expectGET('/venue/' + id).respond(); var obj = Venue.get({ "id": id }); // 如果更改为{ "_id": id }会出错 $httpBackend.flush(); }); it('should put venue', function() { var obj = new Venue({ "_id": id }); // 如果更改为{ "id": id }会出错 $httpBackend.expectPUT('/venue/' + id, { "_id": id }).respond(); obj.$update(); $httpBackend.flush(); }); ....
就像我评论的那样,在get测试中,如果将"id"属性重命名为"_id",会出现错误:
Error: Unexpected request: GET /venue?_id=123456789012345678901234 Expected GET /venue/123456789012345678901234
而在put测试中,如果将"_id"属性重命名为"id",会出现:
Error: Unexpected request: PUT /venue Expected PUT /venue/123456789012345678901234
我有什么遗漏的吗?我试图寻找有关Angular如何处理带有下划线的参数的文档,但没有找到任何相关的信息。