Ho fatto qualcosa in questo senso. Questo non gestisce quando aggiornare per il caching e cose del genere. Ma, ti fornirà un modo per caricare inizialmente gli elementi da localStorage e, se la rete non è disponibile, il contenuto rimarrà solo come dati locali. Ovviamente puoi ampliarlo notevolmente per gestire le tue esigenze.
App.PhotoCategories = Ember.Object.extend
init: ->
@_super()
@loadPhotoCategories
loadPhotoCategories:() ->
# load cached categories from local storage
@set 'content', @getFromCache("photoCategories")
if @content?
if @content.length == 0
$.ajax
type: "POST"
url: "/api/getCategories"
success: (data) =>
if !data.error
@set 'content', []
for category in data
@pushObject category
# save categories to local storage
@saveToCache("photoCategories", @content)
saveToCache: (key, data) ->
if @supportsHtml5Storage()
localStorage.setItem(key + '_LastUpdatedAt', new Date())
localStorage.setItem(key, JSON.stringify(data))
true
else
false
getFromCache: (key) ->
if @supportsHtml5Storage()
data = localStorage[key]
if data?
JSON.parse(localStorage[key])
else
null
else
null
supportsHtml5Storage: ->
try
return "localStorage" of window and window["localStorage"] isnt null
catch e
return false
un modo potrebbe essere la creazione si possiede oggetti del modello piuttosto che usare brace-dati ... – thecodejack
Vorrei utilizzare le funzionalità di brace-dati comunque. Voglio essere in grado di caricare senza problemi i dati da un'API REST in un gruppo di classi di modelli ember senza dover scrivere alcun codice che lo faccia. È persino possibile cambiare l'archivio dati nell'app durante la sua durata? – l33z3r