我认为这取决于您如何调用更新功能。如果您阅读 Angular 主页的教程,在“连接后端”下,mongolab.js 提供了一个“项目”工厂。逐字复制:
angular.module('mongolab', ['ngResource']).
factory('Project', function($resource) {
var Project = $resource('https://api.mongolab.com/api/1/databases' +
'/angularjs/collections/projects/:id',
{ apiKey: '4f847ad3e4b08a2eed5f3b54' }, {
update: { method: 'PUT' }
}
);
Project.prototype.update = function(cb) {
return Project.update({id: this._id.$oid},
angular.extend({}, this, {_id:undefined}), cb);
};
Project.prototype.destroy = function(cb) {
return Project.remove({id: this._id.$oid}, cb);
};
return Project;
});
用法是你首先得到一个Project的实例:
project = Project.get({id:1});
然后在进行一些更改后进行更新:
project.update(someFunction);
在您的情况下,您可以更改更新以始终添加您需要的数据:
Product.prototype.update = function(cb) {
return Product.update({},
angular.extend({}, this, {someDataKey: someDataValue}), cb);
};
否则,您很可能会将键/值对放在参数中:
update: {method : "POST", params:{someDataKey: someDataValue}}
它将与 URL 中的键/值对一起发布,但现在大多数应用服务器都会将该对放入 params 对象中。