如何在保存之前刷新实体,使用 angular-wakanda API
How to refresh an entity before it is saved, with angular-wakanda API
之前我们有一个serverRefresh()
方法来刷新实体,用WAF。它触发 init
事件服务器端。
我现在看不出有什么方法可以使用 angular-wakanda 连接器来做到这一点。
我是不是漏掉了什么?
如何在使用 Angular-Wakanda 连接器保存新创建的实体之前初始化一些数据?
你应该在你的实体上使用 $fetch() 方法,它会获取它并更新它的所有属性,然后应用你的修改并调用 $save()。
另请参阅:
angular-wakanda doc
从现在开始,$serverRefresh() 是一个弃用的功能,并且肯定会在下一个 1.1.0 版本中从 Angular-Wakanda 连接器中删除。
你可以在你的实体上使用 $fetch() 方法,它会再次获取它并更新它的所有属性。然后应用您的修改并调用 $save()。
对于新创建的实体,您可以按照以下步骤进行:
var newProduct = ds.Product.$create();
newProduct.productName = "myProductName";
newProduct.price = 5.5;
newProduct.$save();
而这个 $save() 触发了事件 init()。
版本 1.1.0 及更高版本(自 2016 年 5 月 11 日起)
对于 1.1.0 及更高版本,您必须使用 $recompute()
方法,它与旧的(见下文)$serverRefresh()
方法做同样的事情。
您可以在 Angular-Wakanda Entity API Reference 上找到它的文档。
版本 <1.1.0
在 当前 版本 (1.0.4) 的 Angular-Wakanda 上,您仍然 可以通过调用$serverRefresh()
在您的实体上。
var entity = ds.Product.$create();
entity.$serverRefresh().$promise.then(function () {
//Your entity is updated with calculated attributes filled, and right events executed
});
$serverRefresh()
的作用如下:
- 在新创建的属性(尚未保存)上,它将触发
init
然后 clientrefresh
服务器端事件,然后更新客户端实体
- 在已保存的实体上,它将触发
clientrefresh
事件服务器端,然后更新客户端实体
确实,它已被弃用并将被删除。但是,它将在 1.1.0 版本中被另一个具有相同行为的、有据可查且明确的方法所取代。
之前我们有一个serverRefresh()
方法来刷新实体,用WAF。它触发 init
事件服务器端。
我现在看不出有什么方法可以使用 angular-wakanda 连接器来做到这一点。
我是不是漏掉了什么?
如何在使用 Angular-Wakanda 连接器保存新创建的实体之前初始化一些数据?
你应该在你的实体上使用 $fetch() 方法,它会获取它并更新它的所有属性,然后应用你的修改并调用 $save()。
另请参阅: angular-wakanda doc
从现在开始,$serverRefresh() 是一个弃用的功能,并且肯定会在下一个 1.1.0 版本中从 Angular-Wakanda 连接器中删除。 你可以在你的实体上使用 $fetch() 方法,它会再次获取它并更新它的所有属性。然后应用您的修改并调用 $save()。 对于新创建的实体,您可以按照以下步骤进行:
var newProduct = ds.Product.$create();
newProduct.productName = "myProductName";
newProduct.price = 5.5;
newProduct.$save();
而这个 $save() 触发了事件 init()。
版本 1.1.0 及更高版本(自 2016 年 5 月 11 日起)
对于 1.1.0 及更高版本,您必须使用 $recompute()
方法,它与旧的(见下文)$serverRefresh()
方法做同样的事情。
您可以在 Angular-Wakanda Entity API Reference 上找到它的文档。
版本 <1.1.0
在 当前 版本 (1.0.4) 的 Angular-Wakanda 上,您仍然 可以通过调用$serverRefresh()
在您的实体上。
var entity = ds.Product.$create();
entity.$serverRefresh().$promise.then(function () {
//Your entity is updated with calculated attributes filled, and right events executed
});
$serverRefresh()
的作用如下:
- 在新创建的属性(尚未保存)上,它将触发
init
然后clientrefresh
服务器端事件,然后更新客户端实体 - 在已保存的实体上,它将触发
clientrefresh
事件服务器端,然后更新客户端实体
确实,它已被弃用并将被删除。但是,它将在 1.1.0 版本中被另一个具有相同行为的、有据可查且明确的方法所取代。