1

之前我们曾经有一个serverRefresh()刷新实体的方法,就是用WAF。它触发init事件服务器端。

我现在看不到任何使用 angular-wakanda 连接器的方法。

我错过了什么吗?

如何在使用 Angular-Wakanda 连接器保存新创建的实体之前初始化一些数据?

4

3 回答 3

2

版本 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 版本上被另一个具有相同行为的、有据可查且明确的方法所取代。

于 2016-03-22T15:50:43.330 回答
1

从现在开始,$serverRefresh() 是一个弃用的功能,并且肯定会在下一个 1.1.0 版本中从 Angular-Wakanda 连接器中删除。您可以在您的实体上使用 $fetch() 方法,它会再次获取它并更新其所有属性。然后应用您的修改并调用 $save()。对于新创建的实体,您可以执行以下操作:

            var newProduct = ds.Product.$create();
            newProduct.productName = "myProductName";
            newProduct.price = 5.5;
            newProduct.$save();

而这个 $save() 触发了事件 init()。

于 2016-03-21T17:14:14.113 回答
0

您应该在您的实体上使用$fetch()方法,它将获取它并更新其所有属性,然后应用您的修改并调用 $save()。

另请参阅: angular-wakanda doc

于 2016-03-21T17:07:29.393 回答