मैं निम्नलिखित मॉडल हैं:backbone.js एक मॉडल के url पैरामीटर बदल सकते हैं और लाने डेटा अपडेट नहीं करता दिलवाया
window.MyModel = Backbone.Model.extend({
initialize: function(props){
this.url = props.url;
}
parse: function(){
// @override- parsing data fetched from URL
}
});
// instantiate
var mod = new MyModel({url: 'some/url/here'});
मैं इस वैश्विक चर का उपयोग 'आधुनिक' बैकएंड से इस मॉडल में कुछ डेटा प्राप्त करने का।
// fetch
mod.fetch({
success: function(){ ...},
error: ...
});
उपरोक्त सभी अच्छी तरह से काम करता है .... मेरे मुद्दा: मैं यूआरएल को रीसेट बदलकर इस मॉडल का पुन: उपयोग और लाने कॉल करना चाहते हैं, लेकिन यह किसी भी तरह यूआरएल अपडेट नहीं होता। मैं कोशिश की है निम्नलिखित:
mod.fetch({
data: {url:'/some/other/url'},
postData: true,
success: function(){ //process data},
error: ...
});
mod.set({url: '/some/other/url'});
// called fetch() without data: and postData: attributes as mentioned in previous
मैं अपने मॉडल के लिए url सेट करना इतना है कि मैं फोन लाने सकता है() और इसे अद्यतन यूआरएल से डेटा को हासिल करेगा? क्या मैं कुछ भूल रहा हूँ। किसी भी संकेत दिए गए के लिए धन्यवाद ..
UPDATE 1: असल में, मैं असमर्थ हूँ अद्यतन मूल्यों पाने के लिए अगर मैं
model.set({url: 'new value'});
model.fetch();
'मॉडल' के बाद किया था एक वैश्विक चर रहा है । 'मॉडल' के एक ताजा उदाहरण बनाकर काम करता है:
model = new Model({url:'/some/other/url'});
model.fetch();
हालांकि, के रूप में आवश्यक काम करता है। क्या इसका मतलब यह है कि एक मॉडल उदाहरण स्थायी रूप से यूआरएल से जुड़ा हुआ है और इसे रीसेट नहीं किया जा सकता है?
अद्यतन में मेरे प्रश्न के उत्तर 1 मॉडल उदाहरण स्थायी रूप से यूआरएल से जुड़ा नहीं है। इसे गतिशील रूप से रीसेट किया जा सकता है। बेहतर समझ के लिए कृपया @ tkone की पूरी व्याख्या और फिर @fguillens 'समाधान के माध्यम से पढ़ें।
mod.url = '/some/other/url'
यूआरएल है मॉडल के ही उदाहरण का हिस्सा नहीं है, बल्कि MyModel
वस्तु की एक विशेषता है कि आप अपने बना रहे हैं:
कारण है कि आप यूआरएल बदल रहे हैं? एक विश्वसनीय webservice के पीछे विचार यह है कि आपकी ऑब्जेक्ट हमेशा एक ही यूआरएल (एक विशिष्ट वस्तु के लिए आवश्यक आईडी के साथ) पर उपलब्ध होती है – tkone