【发布时间】:2015-09-23 21:57:48
【问题描述】:
我认为这似乎是一个显而易见的问题,但我的大脑似乎有点炸了。
我有资源
Book = $resource("/books/:id", {id: "@id"});
book = Book.get(1);
我想刷新对象以从服务器获取更改。
我知道我可以通过重复 book = Book.get(book.id) 来做到这一点,但这意味着页面上正在观看 book 的所有内容都会暂时为空,直到查询返回并且对其进行操作的函数可能会崩溃。
我想向实例添加一个 reload 方法,该方法在查询从服务器返回后更新任何更改的字段。到目前为止,我最好的尝试是:
$reload = function() {
var model = this;
Book.get(model.id, function(data) { // success
angular.forEach(data, function(value, key) {
model[key] = value;
}
}
}
两个问题 a)这是“角度”的方式,还是有更优雅的方式? a) 如何在定义资源时添加此 $refresh 方法,以便它包含在创建的每个实例中?
【问题讨论】:
标签: javascript angularjs angular-resource