我正在使用AngularJS開發WebApp。我有兩個主要模型,旅程和地點。每個旅程都有一個開始和結束目的地。AngularJS中的資源非規範化數據
在服務器端,我只處理規範化的數據,即旅程和位置存儲在單獨的數據庫表中,每個旅程條目僅存儲其目的地的ID號。
在客戶端(在AngularJS中),我使用了兩個RESTful ngResources,一個用於旅程,另一個用於位置。同時裝入後,我填充用於顯示的位置數據,這樣的旅程不僅包含startLocation(ID),而且startLocationObject(位置數據)的行程是這樣的:
journey.startLocationObject = locations.byId(journey.startLocation);
ById是一個簡單的查找函數,返回具有給定ID的位置。
現在,每次我在旅程中呼叫$ save,由於旅程被服務器響應覆蓋,位置數據丟失。因此,我必須再次使用位置數據重新填充行程。
有沒有更好的方法來解決這個問題?例如,防止ngResource覆蓋旅程對象?或者我錯過了Angular關係數據方面的一些東西?
感謝您的幫助, 最佳,鮑里斯
這個REST實現有很多類似的問題。也許你會習慣於自己的自定義實現。 AFAIK你不能覆蓋那個行爲。 –
您應該在服務器端實現一個視圖,以返回已經與其位置關聯的旅程。注意不要將數據庫表與REST資源混淆。 REST中的「R」代表「具有代表性」。在您的服務器上創建最適合客戶需求的表示。 –
@Mike,我明白了,這意味着在服務器上填充數據。我試圖避免這種情況,以儘量減少網絡流量,但也許這是打開一罐蠕蟲。感謝您的回覆! –