2013-06-18 14 views
5

urlRoot Backbone.js'de nasıl çalıştığını anlamakta sorun yaşıyorum. Bir NodeJS/MongoDB arka ucundan belirli bir _id ile bir görev almayı deniyorum.Backbone.js urlRoot yöntemi nasıl düzgün kurulur?

Tam olarak açık olmayan şey, id özniteliğinin URI'ye nasıl iletileceğidir.

var task = new App.Models.Task({ id: '51c09ae7d3b35d29d4dfdecd' }); 
task.fetch(); 

Ve aşağıdaki hatayı alırsınız:

GET http://localhost:3000/tasks/:_id 500 (Internal Server Error) 

düzgün bu kurarım nasıl Krom dev araçları aşağıdaki yapıyorum? Ben sadece "/ görevler" olmalıdır idAttribute ve urlRoot tanımlamak gerekmez söyleyebilirim

(function() { 

    window.App = { 
    Models: {}, 
    Views: {}, 
    Collections: {} 
    }; 

    App.Models.Task = Backbone.Model.extend({ 
    defaults: { 
     title: '', 
     completed: false 
    }, 

    idAttribute: "_id", 

    urlRoot: '/tasks/:_id' 
    }); 

})(); 

cevap

5

rehberlik http://backbonetutorials.com/what-is-a-model/ baktığımızda:

İşte benim Omurga kod. Omurga gerisini halleder.

Not: Kendimi bel kemiği kullanmadım ama üzerinde okumaya devam ediyorum.

+1

Evan, Ayrıca bu satırı silmelisiniz - idAttribute: "_id" –

+0

"idAttribute:" _id "öğesinin kaldırılması, urlRoot'un"/task/"konumuna getirilmesiyle birlikte çalıştı. Biraz kafam karıştı, çünkü Mongo'nun “_id” i değil, “id” kelimesini kullanarak bu hattın gerekli olduğunu düşündüm. Omurga, '_id' denilen özniteliği nereden alacağını biliyor? –

+0

Arka ucunuzun ayrıntılarını bilmiyorum ama REST API'sında "id" nin kullanılmasını beklerdim ancak servisiniz Mongo'ya bağlandığında orada "_id" kullanır. –