7

मैं BackboneRelational को लागू करने और हो रहीरीढ़-संबंधपरक दो RelationalModel का दृष्टांत नहीं कर सकते हैं वस्तुओं

रखने के लिए कोशिश कर रहा हूँ "प्रकार प्रति एक ही आईडी वाले एक से अधिक Backbone.RelationalModel का दृष्टांत नहीं कर सकते!"

class App.Models.User extends Backbone.RelationalModel 
    urlRoot : '/api/users' 
    idAttribute: 'id' 

    relations: [ 
    type: Backbone.HasMany 
    key: 'plots' 
    relatedModel: 'App.Models.Plot' 
    collectionType: 'App.Collections.Plots' 
    includeInJSON: false 
    reverseRelation: 
     key: 'user_id', 
     includeInJSON: 'id' 
    ] 


class App.Models.Plot extends Backbone.RelationalModel 
    urlRoot : '/api/plots' 
    idAttribute: 'id' 

अगर मैं स्विच मॉडलों में से एक Backbone.Model फैली करने के लिए मैं दोनों का दृष्टांत कर सकते हैं, लेकिन मैं सभी चेतावनियों कि रिलेशनल कार्यक्षमता टूट गया है मिलता है ..

मैं प्राप्त करने के लिए कोशिश कर रहा हूँ निम्नलिखित:

plot = new App.Models.Plot({id : 700}) 
plot.fetch() 
plot.get('user') 

मैं क्या याद आ रही है?

उत्तर

10

"एक मॉडल प्रति आईडी" स्थिति के पीछे सामान्य विचार यह है कि बैकबोन रिलेशनल पहले से लोड किए गए मॉडलों के बार-बार अनुरोधों को समाप्त करने के लिए डेटा स्टोर (Backbone.Relational.store) का उपयोग करता है।

सौभाग्य से, यह भी स्टोर के माध्यम से पहुंच मॉडल मदद करने के लिए एक few helpers प्रदान करता है। एक आईडी की आपूर्ति और साजिश को लाते समय के बजाय, आप के बजाय App.Models.Plot को findOrCreate विधि आप संलग्न पाएँगे उपयोग कर सकते हैं:

plot = App.Models.Plot.findOrCreate(700) 
user = plot.get('user') 
+1

धन्यवाद! मैं अब साजिश को तुरंत चालू कर सकता हूं, लेकिन उपयोगकर्ता = plot.get ('user') अपरिभाषित लौटाता है। – Stpn

+0

आप शर्त लगाते हैं! संबंध मुद्दा कुछ और हो सकता है। कॉफ़ीस्क्रिप्ट/'सेटअप' क्यू + ए को यहां देखें: https://github.com/PaulUithol/Backbone-relational#q-and-a – rjz

+0

मुझे लगता है .. तो इसे पढ़ने के बाद, मैंने निष्कर्ष निकाला है कि मुझे बस ऐप शामिल करना है मॉडल कोड की अंतिम पंक्ति के रूप में .Models.User.setup()? क्षमा करें, लेकिन इसे स्पष्टीकरण से काफी समझ नहीं सकता .. मैं plot.fetchRelated ('user_id') कर सकता हूं हालांकि .setup() के साथ ठीक है लेकिन प्राप्त नहीं ('उपयोगकर्ता') .. – Stpn

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