2011-05-31 19 views
7

के लिए गतिशील यूआरएल का उपयोग करें संग्रह संग्रह के दौरान बैकबोन एक बार यूआरएल कॉन्फ़िगर करें। क्या बाद में इस यूआरएल को बदलने का कोई तरीका है?बैकबोन संग्रह

निम्नलिखित नमूना /product और 2 POST पर 0 POपर 2 POST दिखाता है। अंतिम POST काम नहीं करेगा, बैकबोन आईडी को जोड़ता है और PUT पर कोशिश करता है, लेकिन मुझे नहीं पता कि क्यों।

products.create({ name: 'American Pastoral', price: 8 }); 
products.create({ name: 'The Grapes of Wrath', price: 10 }); 

products.each(function(product) { 
    var id = parseInt(product.get('id')); 
    stocks.setId(id); 
    stocks.create({ id: id, quantity: 12 }); 
} 

शेयर संग्रह:

Backbone.Collection.extend({ 
    url: function() { 
     return this.url; 
    }, 
    parse : function(resp) { 
     return resp.stock; 
    }, 
    setProduct: function(id) { 
     this.url = '/product/'+id+'/stock'; 
    } 
}); 

यह नहीं होगा काम करते हैं।

+0

देखें http://stackoverflow.com/a/17361421/1039488 – guyaloni

उत्तर

6

बैकबोन.जेएस मौजूदा मॉडल को सहेजते समय मॉडल के यूआरएल का उपयोग करेगा। यह स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं - उदाहरण के लिए, मुझे नहीं पता कि स्टॉक क्या हैं। वैसे भी, अपने कोड शायद नीचे के समान दिखाई की जरूरत है और आप गतिशील यूआरएल नहीं बदल रहा है किया जाना चाहिए: के लिए बनाता है और के लिए मॉडल यूआरएल की बचत होती है

Product = Backbone.Model.extend({ 

    url: function() { 
     return '/product/' + id + '/stock'; 
    } 

}); 

ProductList = Backbone.Collection.extend({ 

    model: Product, 

    url: '/product' 

}): 

Backbone.js तो संग्रह यूआरएल का प्रयोग करेंगे। मुझे लगता है कि आपको अकेले यूआरएल छोड़ने की जरूरत है और रीढ़ की हड्डी की डिफ़ॉल्ट कार्यक्षमता इसे संभालने दें।

3

मैंने अनिवार्य रूप से एक ही समस्या में भाग लिया है। ऐसा लगता है कि बैकबोन का पैटर्न मॉडल और संग्रह में सापेक्ष यूआरआई को लॉक करना है और फ्रेमवर्क को इन्हें किसी दिए गए संसाधन के लिए अंतिम यूआरआई बनाने के लिए उपयोग करने की अनुमति देना है। यह शेष यूआरआई के टेम्पलेट्स के लिए बहुत अच्छा है जो नहीं बदलते हैं। लेकिन एक शुद्ध पुनर्स्थापना सेवा में आप किसी दिए गए संसाधन के हिस्से के रूप में नीचे आने वाले सापेक्ष यूआरआई की सूचियों की अपेक्षा करेंगे। ऐसे कई कारण हैं जिनसे आपको ऐसा करने की आवश्यकता हो सकती है, स्पष्ट है कि संसाधन के लिए यूआरआई चलता है।

जहां तक ​​मैं कह सकता हूं कि बैकबोन के पास आसानी से इसे संभालने का कोई तरीका नहीं है। मेरे कामकाज के ऊपर प्रश्न में ओएलएन का उपयोग करके मॉडल यूआरएल विधि को अनिवार्य रूप से परिभाषित करना है। संग्रह को लाने या इसे पहली बार प्रारंभ करने के दौरान आप ऐसा करेंगे। मूल रूप से यूआरआई सूचियों को संभालने के लिए तर्क बनाएं।

2

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे यह तय करने में थोड़ा सा लगा कि मेरी समस्या के लिए इसे कैसे हल किया जाए।

jQuery.ajax options can also be passed directly as fetch options, so to fetch a specific page of a paginated collection: Documents.fetch({data: {page: 3}}) 

वस्तु डेटा पैरामीटर के लिए पारित किया जा रहा URL चर प्राप्त के रूप में जोड़ा जाता है: लाने संचालन के तहत मैनुअल में इस tidbit है। तो यूआरएल यूआरएल में बदल जाएगा? पेज = 3 या यूआरएल? X = 1 & पृष्ठ = 3 अगर मौजूदा चर पहले से मौजूद थे।

संबंधित मुद्दे