在我們以前有一個serverRefresh()
方法刷新實體,用WAF。它觸發了事件服務器端的init
。如何刷新一個實體,然後保存它,使用angular-wakanda API
我現在沒有看到有任何方法可以使用角-wakanda連接器。
我錯過了什麼嗎?
如何在使用Angular-Wakanda連接器保存新建實體之前初始化某些數據?
在我們以前有一個serverRefresh()
方法刷新實體,用WAF。它觸發了事件服務器端的init
。如何刷新一個實體,然後保存它,使用angular-wakanda API
我現在沒有看到有任何方法可以使用角-wakanda連接器。
我錯過了什麼嗎?
如何在使用Angular-Wakanda連接器保存新建實體之前初始化某些數據?
1.1.0版及更高版本(從16年5月11日)
隨着1.1.0版及更高版本,你必須使用$recompute()
方法,做同樣的東西,舊的(見下文) $serverRefresh()
方法。
您可以在Angular-Wakanda Entity API Reference找到它的文檔。
版本< 1.1.0
在角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版本中被另一個具有相同行爲的,記錄完好並且不明確的方法所取代。
您應該在您的實體上使用$fetch()方法,它將獲取它並更新其所有屬性,然後應用您的修改並調用$ save()。
另請參閱: angular-wakanda doc
$ fetch方法不會觸發init事件。 – Ganbin
在服務器的內存中創建一個新的實體後,觸發init事件。 可以使用此事件來初始化屬性值, 要init事件的「姓氏」屬性相關聯: model.Employee.lastName.events.init =函數(事件){ this.lastName =「「; } 當您使用$ create創建新實體時,會觸發init事件。 –
謝謝,我知道這一切。我只是無法用角連接器觸發這個init事件。在V1存在之前,我正在使用Wakanda(2012)。我完全瞭解Wakanda工作流程。 $ fetch方法不能應用於尚未創建並存儲在數據庫中的新實體。 – Ganbin
從現在開始$ serverRefresh()是一個棄用的功能,並會從角Wakanda連接器的下一個版本1.1.0被明確刪除。 您可以在實體上使用$ fetch()方法,它會再次獲取並更新其所有屬性。然後應用您的修改並調用$ save()。 對於新創建的實體,您可以進行如下:
var newProduct = ds.Product.$create();
newProduct.productName = "myProductName";
newProduct.price = 5.5;
newProduct.$save();
這$保存()觸發事件的init()。
謝謝。我會測試並提供反饋。聽起來不錯。新版本的回購是否是私人的? – Ganbin
@Ganbin是的,它現在是私人的,它將很快出版。 – Blackus