2013-08-30 31 views
4

從角度看,似乎沒有內置的方式來存儲模型生命週期狀態,也就是說,由於它是一個異步和潛在的狀態存儲在服務器上的遠程模型的過期拷貝,或者服務器與客戶端相比過期的地方。看着灰燼是怎麼做的,在http://emberjs.com/guides/models/model-lifecycle/,他們有一個模型對象一定數量的狀態:角度模型生命週期狀態:髒和正在進行的記錄

  • LOADING
  • 加載/ CLEAN
  • DIRTY
  • 飛行
  • 無效
  • 錯誤

Angular的模型似乎只是普通的Javascript o對象,所以沒有這個。看看$資源,這似乎與我所尋找的更接近,似乎與狀態無關。我的目標是在需要將某些內容保存到服務器時向用戶說明,以及這種保存的結果。

  • 這樣做的好方法是什麼?
  • 是否有任何現有的庫,或者我將不得不推出自己的?

編輯:我沒有指DOM與瀏覽器內存中的模型相比已過時。我知道Angular把所有這些作爲2路數據綁定處理,如http://docs.angularjs.org/guide/dev_guide.templates.databinding所解釋的那樣。這是處理狀態,當模型本身可能不同於服務器時。

+0

「Angular的模型似乎只是普通的Javascript對象」。是的,這是一個設計決定。但是,如果$摘要在範圍上運行,則會測試模型有效性。 Angular *會*使用摘要循環跟蹤模型對象的骯髒和有效性。 「我的目​​標是向用戶明確何時需要將某些內容保存到服務器,以及這樣節省的結果」咦?你有髒/乾淨和有效/無效。您在Ember中列出的其他狀態似乎是在與服務器往返時出現的中間狀態 - 您難以跟蹤$ http/$資源調用嗎? – laurelnaiad

+0

「您在Ember中列出的其他州似乎是在與服務器往返時出現的中間狀態。」是的,這正是我所說的。我瞭解Angular處理模型對象和DOM之間的污染檢查,以便DOM始終保持最新,並且我對此沒有任何問題或疑問。我的意思是,模型在瀏覽器中發生了變化,但尚未持久保存到服務器,或者由於正在進行的$ http/$資源調用,可能會在瀏覽器中更新模型。我會編輯這個問題,使其更加清晰。 –

+0

角形軌道在模型上也是質樸/髒的。由於您負責發生$ http/$資源調用,並且有一個處理程序知道這些調用何時完成(或失敗)的位置,因此我認爲您擁有所有需要的信息。我想我錯過了一些東西。 – laurelnaiad

回答

1

你看看the form directive嗎?你可以檢查它是否是原始的,骯髒的,有效的等等......這可以滿足你的需求,「當需要將某些東西保存到服務器時向用戶清楚」。我真的不知道「任何這種儲蓄的結果」是什麼意思,但是根據表格的狀態,你可以顯示任何你想要的東西。

+0

「任何這樣的保存的結果」:如果與服務器的連接失敗,那麼某種錯誤信息應該明確指出它出錯了。同樣,如果它已被保存,則會保存某種類型的消息。看看錶單指令,它看起來像是在外部對錶單指令進行處理。 –

+0

我不知道任何角度庫或擴展,它提供了所有這些開箱即用的功能。我們在$ http調用的成功和錯誤處理程序中調用一個警報服務。 –