2013-03-16 34 views
2

我已經環顧四周尋找答案,但我已經幹起來了。我想要做的是在特定的視圖模型中有一個事件處理程序,它偵聽Breeze中的實體被添加或刪除,以便視圖模型可以對它正在管理的數組採取適當的操作。這樣的事件是否存在?實體被添加或刪除時,Breezejs中是否有事件被觸發?

我有一個工作視圖模型,用於我的工作視圖,其中包含其他屬性,Job實體的ko.observableArray以及NewJob視圖的NewJob視圖模型。兩個視圖模型共享相同的數據服務。我想簡單地使用NewJob視圖模型中的DataService向Breeze中插入一個新的Job實體,然後讓Jobs視圖模型簡單地訂閱一個事件,以便知道將新的Job添加到它的Jobs數組中。

TIA

回答

2

微風EntityManager提供了可用於像這樣的entityChanged event

var em = new EntityManager({serviceName: "api/NorthwindIBModel" }); 
em.entityChanged.subscribe(function(changeArgs) { 
    // This code will be executed any time any entity within the entityManager is added, 
    // modified, deleted or detached for any reason. 
    var action = changeArgs.entityAction; 
    var entity = changeArgs.entity; 
    // .. do something to this entity when it is changed. 
}); 
+0

Performancewise woudn't它是最好有獨立的事件,而不必用戶檢查entityAction? – 2016-10-10 18:39:43

+0

問題在於許多常見用例都需要使用相同的代碼路徑處理多個不同的操作。即追蹤變化意味着跟蹤添加/修改和刪除但不分離,並且該代碼將更難以爲每個動作創作單獨的事件。 ...到目前爲止,我們從未在任何大型微風應用程序中看到明顯的性能影響,其中一些應用程序正與緩存中的數千個實體同時工作。 – 2016-10-10 20:07:48

相關問題