2012-03-06 8 views
6

मुझे लगता है कि मुझे बैकबोन के रूटिंग कार्यों के बारे में कुछ मूल बातें याद आ रही हैं।बैकबोन जेएस रूटिंग काम नहीं कर रहा है क्योंकि मुझे उम्मीद है कि

मैं एक एप्लिकेशन बनाने रहा हूँ और यह बहुत तरह दिखता है:

file: app.js

App = {} 
App.nav = new Backbone.Router; 
require('app/controller'); 

file: controller.js

App.nav.route('home', 'home', function() { 
    console.log("Home Activated"); 
}); 

App.navigate('home'); 

इस बिंदु ब्राउज़र पता बार में URL परिवर्तन पर /home लेकिन कुछ भी नहीं होता है और मुझे Home Activated कंसोल संदेश नहीं मिलता है।

मैंने अपनी खुद की रूटिंग क्लास (यानी Backbone.Router.extend({})) का उपयोग करने का प्रयास किया है, लेकिन मुझे वास्तव में इसमें कोई बिंदु नहीं दिख रहा है क्योंकि मुझे अभी भी इसे प्रारंभ करने की आवश्यकता है, और मैं अपने ऐप में केंद्रीय इतिहास/नेविगेशन का उपयोग करना चाहता हूं सभी नियंत्रक के लिए राउटर बनाने के बजाय सभी मॉड्यूल/नियंत्रक इसके लिए रूटिंग जोड़ते हैं।

मैं क्या गलत कर रहा हूं?

उत्तर

6

काम करने के लिए रूटिंग के लिए, आपको अपने मार्गों को स्थापित करने के बाद Backbone.history.start() पर कॉल करने की आवश्यकता है (मूल रूप से आप सब कुछ करने के बाद)। देखें: http://documentcloud.github.com/backbone/#History-start

15

http://documentcloud.github.com/backbone/#Router-navigate

प्रलेखन से:

आप भी मार्ग फ़ंक्शन को कॉल करना चाहते हैं, सच करने के लिए ट्रिगर विकल्प सेट।

लेकिन जैसा कि ओलीम ने लिखा था, आपको पहले इतिहास को सक्रिय करने की आवश्यकता है!

तो आपका जवाब होना चाहिए:

Backbone.history.start(); 
App.nav.navigate('home', {trigger: true}); 

संपादित करें: "मार्गदर्शक"

+1

'{ट्रिगर: सच} जोड़ें' यहाँ समाधान का हिस्सा नहीं है। बैकबोन ट्रिगर करने के लिए डिफ़ॉल्ट होगा: यदि कोई विकल्प निर्दिष्ट नहीं है तो सत्य। यहां कोड स्निपेट है: 'नेविगेट करें: फ़ंक्शन (खंड, विकल्प) { यदि (! इतिहास। प्रारंभ) झूठी वापसी; यदि (! विकल्प || विकल्प === सत्य) विकल्प = {ट्रिगर: !! विकल्प}; ' – Kinergy

+0

आपके लिंक में 404'd हैं। – NuclearPeon

1

मैं सिर्फ यह कहना चाहता हूँ के रूप में यह मुझे चोट लगी है और गहन खिन्नता की दुनिया को बचाया डाल करने के लिए भूल गया था।

आप इस तरह के

Backbone.router.navigate('/some/page'); // does not work 

रूप में एक कस्टम पृष्ठ पर रूटिंग कर रहे हैं और यह काम नहीं कर रहा होता है तो। पीछे '/'

Backbone.router.navigate('/some/page/'); // works 

यह मैं समस्या निवारण के कुछ ही घंटों खर्च ...

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