2013-05-23 3 views
1

Je suivais le code source annoté à:Backbone modèle TODO -> méthode d'enregistrement

http://backbonejs.org/docs/todos.html

Le modèle est:

var Todo = Backbone.Model.extend({ 

defaults: function() { 
    return { 
    title: "empty todo...", 
    order: Todos.nextOrder(), 
    done: false 
    }; 
}, 
toggle: function() { 
    this.save({done: !this.get("done")}); 
} 

}); 

Ma question est:

Que se passe- quand this.save est appelé? Je sais que la collection utilise le stockage local, mais comment le modèle fonctionne-t-il?

Répondre

1

Le modèle a une méthode url & urlRoot où vous définissez le point d'extrémité de repos sur votre serveur. Il va donc essayer de se connecter à ce point et d'exécuter le code qui correspond à ce point particulier. Cela enregistre le nouvel état du modèle sur votre serveur. Mais parce que dans le cas où vous faites référence à, l'adaptateur de stockage local est utilisé, les modifications seront conservées dans le navigateur. Donc, la méthode url n'est pas requise. Mais à cause de cela, si vous essayez d'ouvrir le même dans un navigateur différent, vous ne verrez aucun changement car les changements sont sur le navigateur et non sur le serveur.

+0

Le localstorage n'est défini que sur la collection, comment le modèle le sait-il? –

+0

Mais il semble être disponible pour le modèle: http://backbonejs.org/#Model-save –

+0

Le modèle est une partie de la collection droite –