Non riesco a capire come funziona urlRoot
in Backbone.js. Sto tentando di recuperare un'attività con uno specifico _id
da un backend NodeJS/MongoDB.Come configurare correttamente il metodo urlRoot Backbone.js
Quello su cui non sono esattamente chiaro è come passare l'attributo id nell'URI. Ho fatto quanto segue da strumenti di sviluppo Chrome:
var task = new App.Models.Task({ id: '51c09ae7d3b35d29d4dfdecd' });
task.fetch();
e ricevo il seguente errore:
GET http://localhost:3000/tasks/:_id 500 (Internal Server Error)
Come faccio correttamente installo questo?
Ecco il mio codice Backbone:
(function() {
window.App = {
Models: {},
Views: {},
Collections: {}
};
App.Models.Task = Backbone.Model.extend({
defaults: {
title: '',
completed: false
},
idAttribute: "_id",
urlRoot: '/tasks/:_id'
});
})();
Evan, Inoltre dovresti eliminare questa riga - idAttribute: "_id" –
Rimozione di 'idAttribute:" _id ",' ha funzionato con il passaggio di urlRoot a ''/ tasks /''. Sono un po 'confuso perché pensavo che quella linea fosse necessaria a causa di Mongo che usa '_id', non' id'. Come sa Backbone a recuperare l'attributo chiamato '_id' allora? –
Non conosco i dettagli del tuo back-end, ma mi aspetterei che "id" sia usato nell'API REST ma poi quando il tuo servizio si connette a Mongo usa "_id" lì. –