marionette - Given a URL hash string, ask AppRouter to resolve the designated controller method -


मेरे पास एक AppRouter और एक नियंत्रक है I अब इस लिंक पर & lt; a class = "myLink" href = "# foo / 123" & gt; लिंक & lt; / a & gt; मुझे नहीं चाहिए कि ब्राउज़र यूआरएल बदल दिया जाए, इसलिए

< Pre> $ ('। MyLink')। क्लिक करें (फ़ंक्शन (evt) {evt.preventDefault (); // कुछ और करें ... var href = $ (this) .attr ('href') ; // # foo / 123 // अब मैं ऐपराउटर / कंट्रोलर का उपयोग करना चाहता हूं जैसा कि वे तैयार हैं।});
  var MyRouter = backbone.Marionette.AppRouter.extend ({appRoutes: {"foo /: id": "doFoo"}}); ऐप.ऑन ('पहले: स्टार्ट', फंक्शन () {ऐप। स्ट्रॉटर = नया माइराउटर ({नियंत्रक: नया मेरा कंट्रोलर ()})}};  

प्रश्न: एक स्ट्रिंग # foo / 123 होने पर (जो ब्राउज़र की यूआरएल बार पर नहीं है) क्या यह रूटर से पूछना संभव है नियंत्रक विधि doFoo को हल करने के लिए?

या राउटर को सीधे doFoo आह्वान करने के लिए कहने के लिए कि यह doFoo है?

हां, लेकिन आपको शायद ऐसा नहीं करना चाहिए। एक बेहतर मार्ग एक घटना का उपयोग करने के लिए होगा।

आप ऐसा सुझाव देते हैं जो आप सुझाव दे रहे हैं:

  var x = "foo / 123"; _.select (बैकबोन.history.handlers, फ़ंक्शन (हैंडलर) {रिटर्न हैंडलर। रूट}। (एक्स);});  

यह एक बेहतर मार्ग है:

  $ ('। MyLink')। क्लिक करें (फ़ंक्शन (evt) {evt.preventDefault (); ऐप Vent.trigger ("नियंत्रक हैंडलर करें");}); Controller.listenTo (App.vent, "कंट्रोलर हैंडलर", नियंत्रक हैडलर);  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -