एक और लंबे शोध के बाद, sth बाहर आता है :-) ऐसा लगता है कि समस्या "getObjectByName" फ़ंक्शन के बारे में है। यह आवश्यकता जेएस (एडीएम) के साथ अच्छी तरह से काम नहीं कर सकता है। वर्तमान में, मुझे समस्या को ठीक करने के लिए एक ग्लोबेल var सेट करना है। मुझे यकीन है कि बेहतर समाधान होना चाहिए।RequjS के साथ बैकबोन-रिलेशनल (0.8.5) काम कैसे करें?
यहाँ मेरी अस्थायी soluton है:
(1) सेटअप एक वैश्विक वर और सेटअप वैश्विक ("एपीपी") के लिए खोज मॉडल गुंजाइश
var APP = {};
define(['backbone-relational'], function(){
Backbone.Relational.store.addModelScope(APP);
})
(2) करने के लिए अपने संबंध मॉडल का निर्यात वैश्विक
APP.YourRelationalModel = YourRelationModel;
यह काम करता है, हालांकि अच्छा नहीं ... मैं वास्तव में आगे एक बेहतर जवाब के लिए देख रहा हूँ। धन्यवाद।
// ------------
परीक्षण संस्करणों:
1.Backbone-Relational 0.8.5
2.Backbone 1.0.0 and Underscore 1.4.4
3.JQuery 1.8.3
4.RequireJS 2.1.5
कोड बहुत सरल है: (या देखने https://github.com/bighammer/test_relational_amd.git)
require.config({
paths : {
js : 'js',
jquery : 'js/jquery-1.8.3',
underscore : 'js/underscore',
backbone : 'js/backbone',
'backbone-relational' : 'js/backbone-relational'
},
shim : {
underscore : {
exports : '_'
},
backbone : {
deps : ['underscore', 'jquery'],
exports : 'Backbone'
},
'backbone-relational' : {
deps: ['backbone']
}
}
});
define(['backbone', 'backbone-relational'], function (Backbone) {
var Child = Backbone.RelationalModel.extend();
var Parent = Backbone.RelationalModel.extend({
relations : [
{
key : 'child',
type : Backbone.HasOne,
relatedModel : 'Child'
}
]
});
var test = new Parent();
});
main.js के कोड से ऊपर बचानेऔर index.html में शामिल इस प्रकार है:
यह काम नहीं करता। वहाँ चेतावनी संदेश है:
Relation=child: missing model, key or relatedModel (function(){ return parent.apply(this, arguments); }, "child", undefined).
मैं रीढ़-संबंधपरक के स्रोत कोड को पढ़ने और जानते हैं कि कुछ नाम स्थान के साथ गलत है। रिलेशनल-बैकबोन "पैरेंट" में परिभाषित संबंधित मॉडल नहीं ढूंढ सकता है (यानी रिलीज़ किए गए मोड: "चाइल्ड" नहीं मिल सकते हैं)। मैं जावास्क्रिप्ट के सीमित ज्ञान के कारण इसे ठीक करने का समाधान ढूंढने में विफल रहा :-)
क्या कोई इस से मेरी सहायता कर सकता है?
इससे पहले कि मैं अपने प्रश्न पूछा, मैं निम्नलिखित समाधान का अध्ययन किया:
Backbone.RelationalModel using requireJs
Can't get Backbone-relational to work with AMD (RequireJS)
Loading Backbone.Relational using Use! plugin
उनमें से कोई भी इस मामले में काम किया।
एक और लंबे शोध के बाद, sth बाहर आता है :-) ऐसा लगता है कि समस्या "getObjectByName" फ़ंक्शन के बारे में है। यह आवश्यकता जेएस (एडीएम) के साथ अच्छी तरह से काम नहीं कर सकता है। वर्तमान में, मुझे समस्या को ठीक करने के लिए एक ग्लोबेल var सेट करना है। मुझे यकीन है कि बेहतर समाधान होना चाहिए। यहां मेरा अस्थायी समाधान है: (1) एक वैश्विक var सेटअप करें और वैश्विक मॉडल ("एपीपी") var APP = {}; परिभाषित ([ 'रीढ़ की हड्डी-संबंधपरक'], function() { Backbone.Relational.store.addModelScope (एपीपी); }) (2) – bighammer