Backbone.LocalStorage сохраняет, но не получает коллекцию, используя Knockback
Backbone.LocalStorage хранит список игроков на стороне клиента при звонке create
на players
коллекции, но сохраненные модели не извлекаются позже, хотя я могу проверить их в localStorage. я могу позвонить @collections.players.localStorage.findAll()
чтобы извлечь все сохраненные объекты и вручную вставить их в мою коллекцию.
class App.Models.Player extends Backbone.Model
defaults:
name: 'Unnamed'
team: 'Unassigned'
class App.Collections.Players extends Backbone.Collection
localStorage: new Backbone.LocalStorage('players')
model: App.Models.Player
class App.ViewModels.Game extends kb.ViewModel
constructor: ->
@collections =
players: new App.Collections.Players()
@collections.players.fetch(
success: (collection) =>
console.log(collection) # shows none
console.log(@collections.players.localStorage.findAll())
# shows all the stored players
)
# @players below is rendered by a foreach in a knockout template
@players = kb.collectionObservable @collections.players, { view_model: App.ViewModels.Player }
addPlayer: -> # called when a button is pressed
@collections.players.create(new App.Models.Player({ name: 'New Player' }))
return
Почему Knockback не может автоматически извлечь сохраненные объекты?
Следующий вызов вручную извлекает все объекты:
_.each @collections.players.localStorage.findAll(), (elem) =>
@collections.players.add(elem)