2011-10-05 12 views
5

के साथ संबंधों से संबंधित संबंधों को संभालना मैं बैकबोन.जेएस के साथ नया हूं और मैं एक संबंध के साथ एक संग्रह लाने के साथ संघर्ष कर रहा हूं।backbone.js

मैं उपयोगकर्ताओं (उपयोगकर्ताओं/जीईटी) की एक सूची प्राप्त करना चाहता हूं और मैं उन्हें सब कुछ प्रदर्शित करना चाहता हूं लेकिन एक related_to एसोसिएशन के साथ।

उदाहरण के लिए उपयोगकर्ता का कंपनी नाम प्रदर्शित करने के लिए। किसी को समाधान पता है?

मैं ऑन रेल्स 3 रूबी का उपयोग कर रहा CouchDB

उपयोगकर्ताओं नियंत्रक के साथ

def index 
    User.all 
end 

बैकबोन संग्रह

class UserCollection extends Backbone.Collection 

    url: -> 
    app.routes.users_url 

    model: User 

रीढ़ मॉडल

class User extends Backbone.Model 

    idAttribute: '_id' 

    defaults: { 
    "email": null 
    "mobile": null 
    "loc": null 
    } 

    url: -> 
    app.routes.users_url + '/' + (@id || '') 

मैं दिखाना चाहते हैं कॉम इस तरह कंपनी के नाम ...

%script{:id => "user-resource-template", :type => "text/template"} 
    %td= check_box_tag "select", 1, false, :class => "checkbox", "data-id" => raw("<%= _id %>") 
    %td <%= name %> 
    %td <%= email %> 
    %td <%= company.name %> 
+0

तो क्या सही तरीके से काम नहीं कर रहा है? –

+0

वैसे संबंधों का संबंध काम नहीं कर रहा है, जो कि तर्कसंगत है क्योंकि मॉडल के संबंध में कुछ भी नहीं है। तो मुझे नहीं पता कि company.name –

उत्तर

4

Backbone.js, संबंधों का समर्थन करने के रूप में वहाँ official documentation में उनमें से कोई जिक्र नहीं है प्रतीत नहीं होता।

सभी खो नहीं गए हैं, हालांकि, कुछ बैकबोन प्लगइन्स हैं जो Backbone-relational या ligament.js जैसे संबंधों के लिए समर्थन जोड़ते हैं। मैंने उनका परीक्षण नहीं किया है, लेकिन बैकबोन-रिलेशनल बहुत सक्रिय लगता है।

अद्यतन

आलसी लोड संग्रह करने के लिए

और एक संबंध प्रति लाने, fetchRelatedBackbone.RelationalModel में विधि देखें रोकने:

मॉडल सर्वर से है कि मॉडल के विशेषताओं में संदर्भित कर रहे थे लायें, लेकिन अभी तक नहीं मिला/बनाया गया है। इसका उपयोग विशेष रूप से आलसी लोडिंग परिदृश्यों के लिए किया जा सकता है।

डिफ़ॉल्ट रूप से, प्रत्येक अतिरिक्त मॉडल के लिए एक अलग अनुरोध निकाल दिया जाएगा जो सर्वर से प्राप्त किया जाना है। हालांकि, यदि आपका सर्वर/एपीआई इसका समर्थन करता है, तो आप द्वारा एक अनुरोध में मॉडल के सेट को एक संग्रह निर्दिष्ट कर सकते हैं, जिस संबंध में आप fetch को कॉल करते हैं, उसके लिए टाइप टाइप करें। संग्रह प्रकार में एक ओवरराइड यूआरएल (मॉडल) विधि होनी चाहिए जो इसे मॉडलों की सरणी के लिए यूआरएल बनाने की अनुमति देती है। उदाहरण के लिए Backbone.Relation options या Backbone-tastypie के शीर्ष पर उदाहरण देखें।

+0

हां अच्छा दिखता है लेकिन इसका मतलब है कि मुझे संग्रह में हर पंक्ति के लिए अनुरोध करना है। तो इसका मतलब सामान्य उपयोगकर्ता इंडेक्स एक्शन पर 20 अनुरोध है। –

+0

मेरा उत्तर अपडेट किया गया, क्या आप यह देख रहे हैं? –

+0

इसके लिए धन्यवाद। यह वास्तव में सही जवाब है। मैं सर्वर के साथ कुछ कारणों से इसे एक और तरीका करने वाला हूं लेकिन यह सही जवाब है। धन्यवाद! –