之前我们曾经有一个serverRefresh()
刷新实体的方法,就是用WAF。它触发init
事件服务器端。
我现在看不到任何使用 angular-wakanda 连接器的方法。
我错过了什么吗?
如何在使用 Angular-Wakanda 连接器保存新创建的实体之前初始化一些数据?
版本 1.1.0 及更高版本(自 2016 年 5 月 11 日起)
对于 1.1.0 及更高版本,您必须使用$recompute()
方法,该方法与旧方法(见下文)执行相同的操作$serverRefresh()
。
你可以在Angular-Wakanda Entity API Reference上找到它的文档。
版本 <1.1.0
在当前的Angular-Wakanda 的版本(1.0.4),你仍然可以通过调用$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() 是一个弃用的功能,并且肯定会在下一个 1.1.0 版本中从 Angular-Wakanda 连接器中删除。您可以在您的实体上使用 $fetch() 方法,它会再次获取它并更新其所有属性。然后应用您的修改并调用 $save()。对于新创建的实体,您可以执行以下操作:
var newProduct = ds.Product.$create();
newProduct.productName = "myProductName";
newProduct.price = 5.5;
newProduct.$save();
而这个 $save() 触发了事件 init()。
您应该在您的实体上使用$fetch()方法,它将获取它并更新其所有属性,然后应用您的修改并调用 $save()。
另请参阅: angular-wakanda doc