मैं एएमडी (require.js) के साथ बैकबोन का उपयोग करते समय ऐसा करने के सबसे शानदार तरीके से खेल रहा हूं। यही वह है जो मैंने साथ आया है, और सबसे अच्छा [अब तक]।
सबसे पहले, डेटा को बूटस्ट्रैप करें, जैसा कि here वर्णित है।
index.htm (आवेदन प्रवेश बिंदु)
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script>
var require = {
config: {
// key name is module, value is data to give module
'models/Base': {
apiUrl: '/some/path/to/api',
}
}
}
</script>
<script data-main="js/main" src="vendor/require/require-jquery.js"></script>
</head>
<body></body>
</html>
इसके बाद, रीढ़ मॉडल के लिए एक आधार वर्ग को परिभाषित इस तरह:
js/मॉडल/Base.js (इस मॉड्यूल को नोटिस नाम के ऊपर config)
define(['module', 'backbone'],
function(module, Backbone){
return Backbone.Model.extend({
getApiUrl: function(){
return module.config().apiUrl;
}
});
}
);
अंत में मॉड्यूल नाम से मेल खाता, के सभी का विस्तार अपने रीढ़ मॉडल है कि आधार है, इस तरह से:
js/मॉडल/User.js
define(['models/Base'],
function(BaseModel){
return BaseModel.extend({
urlRoot: function(){
return this.getApiUrl() + '/user';
}
// ... more cool stuff here
});
}
);
यह स्पर्शरेखीय रीढ़ और Require.JS के बारे में एक earlier question I had से संबंधित है।
संबंधित पढ़ने: http://requirejs.org/docs/api.html#config-moduleconfig
मुझे नहीं लगता कि यह काम करता है। मूल url के साथ अनुरोध पहले से ही खोला जाने के बाद पहले से भेजें() 'कहा जाता है। – mwhite
यह वास्तव में 'preSend' का उपयोग है; * पहले भेजें प्रकार: फ़ंक्शन (jqXHR jqXHR, PlainObject सेटिंग्स) एक पूर्व-अनुरोध कॉलबैक फ़ंक्शन जिसका उपयोग jqXHR (jQuery 1.4.x, XMLHTTPRequest) ऑब्जेक्ट को भेजने से पहले संशोधित करने के लिए किया जा सकता है। कस्टम हेडर आदि सेट करने के लिए इसका उपयोग करें। JqXHR और सेटिंग्स ऑब्जेक्ट्स तर्क के रूप में पास किए जाते हैं। यह एक अजाक्स घटना है। पहले सेव फ़ंक्शन में झूठी वापसी अनुरोध को रद्द कर देगी। JQuery 1.5 के रूप में, अनुरोध के प्रकार के बावजूद पहले सेन्ड विकल्प को कॉल किया जाएगा। * –
अनुरोध भेजने से पहले है लेकिन इसे प्रारंभ करने के बाद (मौजूदा यूआरएल के साथ)। मेरा जवाब सही ढंग से काम करता है। – mwhite