gpt4 book ai didi

javascript - 如何使用服务器响应更新 Restangular 模型对象?

转载 作者:可可西里 更新时间:2023-11-01 02:45:48 26 4
gpt4 key购买 nike

我的 POST 和 PUT 返回在服务器上看到的实体的当前状态。我如何告诉 Restangular 在服务器调用后更新其模型对象?

以防万一 - 为什么?因为在保存/更新期间服务器可能已经计算了一些字段。因为可能有其他客户端同时更新,我想确保当前正在更新的客户端是最新的。

到目前为止我只找到了这个:

var res = {foo: "bar"};
var cb = function(response) {
$.extend(res, response);
}
// POST / create
Restangular.all("resource").post(res).then(cb);

// PUT / update
res.put().then(cb);

它看起来既脏又常见,我怀疑一定有更好的方法。

编辑

上面的代码仅演示了两个不同的操作。我的目标是不是在创建实体后向服务器发送更新,而是在客户端更新状态。如果需要,与服务器同步状态。

当我发布一个对象时:

var res = {foo: "bar"};
Restangular.all("resource").post(res);

服务器响应正文为:

{"foo": "bar", "id": 15}

...然后我希望 Restangular 自动更新和重新定义 res 对象,因此它具有 ID,可以是 put() 等。

现在是一个不同/互补的场景。当我放置一个 Restangular 对象时:

var res = Restangular.one("resource", 15).get();
// returns {foo: "bar", id: 15}
res.put();

服务器总是回复对象的当前状态,可能是:

{"foo": "buzz", "id": 15}

...所以我希望 Restangular 在此 PUT 之后自动更新 res

最佳答案

我是 Restangular 的创建者。

如果我没理解错的话,你想先做post,再做put?在这种情况下,您可以执行以下操作:

var res = {foo: 'bar'};
Restangular.all('resource').post(rest).then(function(response) {
res = response;
res.put()
})

不知道我理解的对不对。

希望它有用

关于javascript - 如何使用服务器响应更新 Restangular 模型对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com