gpt4 book ai didi

javascript - 正在监视的 Angular 重新加载资源

转载 作者:行者123 更新时间:2023-11-29 10:39:37 27 4
gpt4 key购买 nike

我认为这似乎是一个显而易见的问题,但我的大脑似乎有点炸了。

我有资源

Book = $resource("/books/:id", {id: "@id"});
book = Book.get(1);

我想刷新对象以从服务器获取更改。我知道我可以通过重复 book = Book.get(book.id) 来做到这一点,但这意味着页面上正在观看 book 的所有内容都将暂时无效,直到返回的查询和对其进行操作的函数可能会崩溃。

我想向实例添加一个重新加载方法,以便在查询从服务器返回后更新任何更改的字段。到目前为止,我最好的尝试是:

$reload = function() {
var model = this;

Book.get(model.id, function(data) { // success
angular.forEach(data, function(value, key) {
model[key] = value;
}
}
}

两个问题a)这是“有 Angular ”的方式,还是有更优雅的方式?a) 如何在定义资源时添加此 $refresh 方法,以便它包含在创建的每个实例中?

最佳答案

尝试扩展它的原型(prototype):

var Book = $resource("/books/:id", {id: "@id"});
Book.prototype.reload = function(callback) {
return this.get(this.id, callback);
}

var book = Book.get(1);
book.reload(function(data){console.log(data);});

感谢:@mathew-berg (Mathew Berg) 修复了我的代码。

关于javascript - 正在监视的 Angular 重新加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491043/

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