2012-05-20 19 views
8

मैं बैकबोन का उपयोग कर एक साधारण खोज पृष्ठ को कार्यान्वित करना चाहता हूं। यह एक एकल पृष्ठ एप्लिकेशन नहीं है, लेकिन फिर भी बैकबोन का उपयोग करके मेरे जावास्क्रिप्ट कोड को ढांचा बनाना चाहता है। एक खोज पृष्ठ में एक खोज फ़ॉर्म और खोज परिणाम होते हैं। खोज AJAX के माध्यम से की जाती है और इतिहास में सहेजा जाना है। जब पृष्ठ इतिहास से लोड होता है, तो खोज क्वेरी पैरामीटर को फ़ॉर्म में लोड किया जाना चाहिए। खोज फ़ॉर्म और खोज परिणामों को Backbone.View के रूप में कार्यान्वित किया जा सकता है। हालांकि, मुझे उन्हें एक साथ चिपकाने में समस्याएं हैं।सरल रीढ़ की हड्डी खोज पृष्ठ - आप यह कैसे करेंगे?

मुझे क्या लगता है कि मुझे किसी प्रकार का नियंत्रक चाहिए। एक बैकबोन है। राउटर, लेकिन क्या यह सही जगह है? AJAX कॉल कहां रखा जाना चाहिए?

ऐसे पृष्ठ की संरचना पर कोई सलाह का स्वागत है।

उत्तर

10

आप SearchModel बना सकते हैं। SearchModel में एक विधि होगी: "प्रदर्शन खोज (स्ट्रिंग)" जो आपके AJAX कॉल को बंद कर देगी। जब कॉल रिटर्न मॉडल की तरह कुछ कर सकता है:

this.set("searchResults", ajaxResult) 

और अपने विचार मॉडल की है कि संपत्ति के लिए बाध्य कर सकते हैं:

Backbone.View.extend({ 
    events: { 
     "submit": "formSubmitted" 
    }, 
    formSubmitted: function(e) { 
     this.model.performSearch(e.target.value); 
    } 
}); 
: संदर्भ के लिए

// SearchResultsView 
Backbone.View.extend({ 
    initialize: function() { 
     this.model.on("change:searchResults", this.displayResults, this); 
    }, 
    displayResults: function(model, results) { 
     // do whatever... 
    } 
}); 

उदाहरण खोज प्रपत्र दृश्य संदर्भ के लिए

उदाहरण SearchModel:

Backbone.Model.extend({ 
    performSearch: function(string) { 
     // fire your ajax request. provide a bound 
     // _searchComplete as the callback 
    }, 
    _searchComplete: function(results) { 
    this.set("searchResults", results); 
    } 
}); 
संबंधित मुद्दे