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)

0 ответов

Другие вопросы по тегам