मुझे बैकबोन.जेएस को कार्यान्वित करने के बारे में गलतफहमी हो सकती है, क्योंकि मेरे सभी विचार जो कई मॉडलों का समर्थन करते हैं (उदाहरण के लिए, एक "उत्पाद" दृश्य जो एकाधिक प्रदर्शित कर सकता है उत्पाद), उस सत्र में बनाए गए हर दृश्य में ईवेंट भेजेगा।मेरे विचारों में Backbone.js घटनाएं कई बार ट्रिगर कर रही हैं
तो नीचे दिए गए उदाहरण में, जब मैं #redirect_product लिंक पर क्लिक करता हूं, तो "redirect_product" को कई बार कहा जाता है कि मैंने कितने उत्पादों को देखा है। अगर मैंने 5 उत्पादों को देखा है, तो 6 वें क्लिक पर मुझे 6 अलर्ट मिलेगा।
यहां क्या हो रहा है?
505 /****************PRODUCT VIEW****************/
506 App.Views.Product = Backbone.View.extend({
507 el: $('#content_sec'),
508
509 events: {
510 "click #redirect_product": "redirect_product",
511 },
512
513 initialize: function(options) {
514 this.model = this.options.model;
515 this.render();
516
517 },
518
519 render: function() {
520 $(this.el).empty();
521 $('#product_detail_template').tmpl(this.model.toJSON()).appendTo($(this.el));
522
523
524 //Activate facebook buttons
525 if (typeof FB != "undefined"){
526 FB.XFBML.parse(document.getElementById('item_share'))
527 }
528
529 wishlist.init();
530 return this;
531 },
532
533 redirect_product: function() {
534 //Send data on what product being clicked by whom
535 alert('hi');
536
537
538 //Open new window with product for user
539 var external_link = this.model.get('product').attributes['External Link'];
540 window.open(external_link, "external_site");
541
542 },
543 });
#redirect_product id पृष्ठ पर कई बार प्रदर्शित होता है? यदि ऐसा है, तो लगता है कि इनमें से प्रत्येक उत्पाद दृश्य उदाहरणों को लगता है कि उन्हें ईवेंट को संभालने की आवश्यकता है। –
रीडायरेक्ट_प्रॉडक्ट आईडी दृश्य में केवल एक बार दिखाई देता है। हालांकि प्रत्येक उत्पाद दृश्य में redirect_product आईडी का एक उदाहरण होगा। क्लिक ईवेंट पर प्रतिक्रिया देने से मैं अन्य विचारों को कैसे रोक सकता हूं? – DevX
आपको इस लिंक का अध्ययन करने की आवश्यकता है: http://documentcloud.github.com/backbone/docs/todos.html। मेरा मानना है कि आपकी समस्या एल के इलाज में निहित है। आपका कार्यक्रम अपने उत्पाद टेम्पलेट पर नहीं है। –