2016-11-18 52 views
0

我是Ember的新手,試圖讓我的腦袋圍繞着所有這些新的Ember概念。用於Ember.js數據創建的組件?

目前,我掙扎在尋找數據創建的最佳途徑。

我想要做的是,創建一個由兩個AJAX調用訪問微服務創造在同一時間模型實例文件上傳。

因爲這個上傳表單應在多個地方使用,一個部件似乎是正確的選擇。

那麼如何構建一個這樣做的組件?

  1. 我應該創建組件並在繞過Ember數據時執行AJAX調用嗎?
  2. 我是否應該將某些模型數據處理到組件並通過模型的數據適配器執行AJAX調用?
  3. 我在這裏完全錯了,還有另外一種方法嗎?

回答

2

好了,有幾個方法來做到這一點。首先是的,一個組件絕對是你需要的東西。

我不認爲你應該繞過燼數據。這樣做的原因很少。你想要做什麼大概是:

  1. 創建一個記錄與store.createRecord()
  2. 修改記錄,
  3. .save()它,
  4. ,以及如何在適配器的所有ajax東西。

你基本上有兩種方法可以做到這一點:

  • 你可以稱之爲從擁有所有數據後,該組件的動作,做以上的行動所有的東西。我認爲這是最DDAU的方法。通過這種方法,您可以在調用組件{{file-upload onUpload=(action 'upload')}}時與外部世界保持連接。
  • 您可以將商店注入組件。老實說,那是我會做的。商店只是一項服務,所以這很簡單。然後你可以創建你的記錄。但是,您與商店的連接不夠明確。
+0

好的。將商店注入組件似乎是一種實用的方式。如果我需要在上傳回組件的過程中提供像progess這樣的反饋,我認爲調用一個動作會有問題嗎? – JPS

+0

@JPS以及它的可能。操作具有返回值,您可以使用數據降低狀態。 – Lux