मैं वर्तमान में बैकबोन.जेएस को रेल ऐप के साथ कोशिश कर रहा हूं। मेरी समस्या यह है कि मुझे नहीं पता कि बैकबोन नियंत्रकों को कैसे कार्यान्वित किया जाए और मेरे रेल ऐप के साथ विचार कैसे करें। मैंने बहुत सारे ट्यूटोरियल पढ़े हैं, लेकिन वे हमेशा backbone.js में केवल एक नियंत्रक का उपयोग कर रहे हैं।रेल के साथ Backbone.js
उदाहरण के लिए, मेरे पास रेल में दो नियंत्रक हैं।
- क्रियाएँ नियंत्रक
- दो दृश्य, एक गूगल मानचित्र और एक खोज क्षेत्र भी शामिल है। Google मानचित्र रीढ़ की हड्डी के दृश्य के साथ डाला गया है, सर्चफील्ड HTML में है और रीढ़ की हड्डी के दृश्य के माध्यम से इसकी कार्यक्षमता प्राप्त करता है।
- खोज क्षेत्र को मेरे रेल मॉडल से डेटा प्राप्त करना चाहिए और मानचित्र के अंदर मार्कर प्रदर्शित करना चाहिए।
और दूसरी एक
- उपयोगकर्ता नियंत्रक
- यहाँ उन प्रोफ़ाइल देखा जाता है, और मैं अद्यतन करने के मूल्यों और अन्य बातों के
मेरी application.js में मैं
var App = {
Views: {},
Controllers: {},
Collections: {},
init: function() {
new App.Controllers.Activities();
new App.Controllers.Users();
Backbone.history.start();
}
};
$(function() {
App.init();
});
समस्या है का उपयोग करते हुए, कि मैं अपने उपयोगकर्ता प्रोफ़ाइल में क्रियाएँ नियंत्रक और रेल क्रियाएँ नियंत्रक में उपयोगकर्ता नियंत्रक की जरूरत नहीं है अनुप्रयोग शुरू करते हैं। मैं इसे कैसे हल कर सकता हूं? क्या मुझे जावास्क्रिप्ट के भीतर वर्तमान यूआरएल पढ़ने की कोशिश करनी चाहिए और फिर तय करें कि कौन से नियंत्रक का उपयोग किया जाता है? या मुझे जावास्क्रिप्ट फ़ाइल को application.html.erb में रखना चाहिए और फिर यहां तय करें कि कौन से नियंत्रक का उपयोग किया जाना चाहिए?
या यह backbone.js नियंत्रकों का उपयोग करने का गलत तरीका है?
मैं sth backbone.js की संरचना के साथ गलत मिल रहे हैं? या मैं नियंत्रकों का गलत तरीके से उपयोग कर रहा हूं?
एक और सवाल, कैसे Backbone.js के माध्यम से थोड़ा जावास्क्रिप्ट, विशेष रूप से jQuery में, कार्यक्षमता जोड़ने के लिए है? उदाहरण के लिए, जब मैं क्षेत्र में क्लिक करता हूं, तो मैं फ़ील्ड के अंदर लेबल को हटाना चाहता हूं। या मैं कुछ टैब-कार्यक्षमता करना चाहता हूं और कुछ तत्वों की दृश्यता को टॉगल करना चाहता हूं। क्या मुझे प्रत्येक तत्व के लिए बनाना चाहिए जो जावास्क्रिप्ट को बैकबोन व्यू का उपयोग कर रहा है? या यह अधिभार है?
आशा मैं अपने आप को स्पष्ट कर दिया और किसी को भी मदद कर सकते हैं, THX!
मार्गों का उपयोग करना एक अच्छा विचार है! लेकिन जैसा कि आपने कहा था कि मेरे यूआरएल में इसमें हैश नहीं है। मैं मानक रेल मार्गों का उपयोग कर रहा हूँ।क्या कोई बेहतर तरीका है कि कौन सा नियंत्रक चुनने का फैसला करता है? या शायद मैं backbone.js कांटा और इस कार्यक्षमता को जोड़ देंगे। तुम क्या सोचते हो? – 23tux
मुझे नहीं लगता कि एक कांटा जरूरी है। आपके नियंत्रक केवल कक्षाएं हैं, कुछ भी वास्तव में तब तक नहीं होना चाहिए जब तक कि आप इन वर्गों में से किसी एक को कॉल न करें। क्या आप समझा सकते हैं कि आप अपने नियंत्रकों के भीतर क्या कर रहे हैं जो आपको इस तरह से कोड को "विभाजित" करना चाहते हैं? (अधिक सामान्य स्तर पर: मैं अपने उत्तर में मौजूदा रेल नियंत्रक के आधार पर जेएस को आमंत्रित करने का एक और तरीका जोड़ूंगा।) – polarblau
thx आपके लिए टिप्पणी और आपके अपडेट के लिए। लेकिन मुझे इस विधि को पसंद नहीं है कि सीएसएस यह तय करने में शामिल है कि कौन से नियंत्रक का उपयोग किया जाना चाहिए। मैं इस कोड को इस तरह से विभाजित करना चाहता हूं, क्योंकि मुझे लगता है कि अन्य नियंत्रकों के अलावा गतिविधियों नियंत्रक के जावास्क्रिप्ट कोड को रखना स्पष्ट है। उदाहरण के लिए, मेरे पास गतिविधियों नियंत्रक और उपयोगकर्ता नियंत्रक में एक मानचित्र है। दृश्य एक जैसा है, लेकिन व्यवहार अलग है। एक और बात यह है कि, मैं इसे विशेष रेल विधि के भीतर कैसे संभाल सकता हूं (मान लें, कोड केवल नियंत्रक की विधि से संबंधित है, उदाहरण के लिए नई क्रिया)? – 23tux