在Backbone.js
中,可以使用预先存在的 JSON 数据实例化模型
var user = new Backbone.Model({ name: "John Doe", age: 30 });
然后通过一次调用执行更新
user.save({ age: 31 }, { success: successCallback, error: errorCallback });
这在各种场景中都很方便,例如当数据已经通过缓存或预填充模板在客户端上可用时(例如使用<%= raw @user.to_json %>
在 rails erb 模板中使用)。
我很想知道使用$resource
with时这是如何完成的Angular.js
。现在,我有一种情况,我的数据在$resource
创建之前缓存在客户端上,我想在不进行额外GET
调用来填充对象的情况下对其进行更新:
app.factory('User', ['$resource', function($resource) {
return $resource('/users/:user_id.json', { user_id: '@id' }, {
get: { method: 'GET' },
save: { method: 'PUT' },
create: { method: 'POST' },
destroy: { method: 'DELETE' }
});
}]);
在我的控制器的某个地方,我只想更新现有用户而不从服务器获取它:
app.controller('UsersController', ['User', function(User) {
// somehow initialize a user from an existing
// object, say { name: "John Doe", age: 30 }
user.age = 31
user.$save()
// instead of doing this
User.get({ user_id: 100 }, function(user, respHeaders) {
user.age = 31
user.$save()
});
}]);
我可能仍然处于 Backbone 的心态,但我真的很好奇我是否在处理这一切都是错误的。谢谢。