Backbone.js les options d'
J'ai écrit un modèle/vue/de la collection à l'aide de Backbone.js. Ma collection utilise la méthode de récupération pour charger les modèles à partir d'un serveur distant. L'url demandée pour cette collection, a besoin d'un id comme: messages/{id}. Mais je n'ai trouvé aucun moyen propre pour passer des options à la Collection.
L'backbone.js afficher accepte des options au moyen de la transmission de construction: afficher([options]), mais la collection s'attend à une liste de modèles lors de la construction: la collection([modèles]).
Ce qui est le plus "propre" de passage de paramètres/options pour cette collection?
Raccourcie code:
var Messages = Backbone.Collection.extend({
model: Message,
url: 'http://url/messages/' + id
});
- peut-être en utilisant une url relative, c'est une meilleure idée ?
Vous devez vous connecter pour publier un commentaire.
@Paul réponse est bonne, mais il est également intéressant de noter que le
url
attribut peut être une fonction. À mon avis (et c'est juste une opinion, puisque le résultat est le même), le code est un peu plus lisible, si plus de commentaires, si vous définissez l'id dansinitialize
et la référence dans une fonction:Juste pour s'assurer, que vous n'êtes pas confondre le
id
ici avec le Modèleid
, êtes-vous? @Paul réponse, et mon code ci-dessus, supposons que vous disposez de plusieursMessages
collections, chacune avec sa propre identité. Si l'API chemin/messages/<id>
fait référence à un message, pas un ensemble de messages, alors vous ne devez définir leurl
à/messages/
dans la Collection, et de la colonne vertébrale utilisera automatiquement/messages/<id>
pour chaque modèle.Nick
pour une si simple et clair exemple. Je souhaite que je pourrais avoir vu votre réponse, je me serais sauvé un jour.... Merci encore.La façon dont vous avez la propriété url déclarée, la valeur sera déterminée une fois lorsque le navigateur initialement charge le fichier javascript, et " id " ne sera pas défini.
L'Épine Dorsale.Collection accepte les options comme le deuxième argument dans son constructeur, de sorte que vous pouvez passer à la valeur de l'id comme une option, puis définissez l'url de la valeur au sein de la fonction d'initialisation de la collection.
Voici un exemple