2013-02-22 68 views
8

मैं एम्बर जेएस के साथ एक ऐप बना रहा हूं और मुझे यकीन नहीं है कि एम्बर के साथ jQuery का उपयोग कैसे करें। जो मैं प्राप्त करने की कोशिश कर रहा हूं उसका एक उदाहरण वह पृष्ठ है जो मेरे एपीआई से बिक्री डेटा प्राप्त करता है।एम्बर ऐप में jquery का उपयोग

मेरी app.js में मैं

App.TransactionsRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Transaction.find(); 
    } 
}); 

मिल गया है अगर मैं एक प्रारंभ दिनांक और App.Transaction.find() विधि को समाप्त तारीख में पास मेरी एपीआई डेटा को प्रतिबंधित इसे वापस भेजता है उन तिथियों के भीतर।

मेरे पास शुरुआत और समाप्ति तिथियों के लिए इनपुट के साथ पृष्ठ पर एक फॉर्म है और मैं इसे jQuery UI के डेटपिकर पर हुक करना चाहता हूं।

यह मैं कहाँ अटक कर रहा हूँ मैं अपने एंबर एप्लिकेशन कोड

jQuery(document).ready(function() { 
    jQuery("#transactionsStartDate").datepicker();  
    jQuery("#transactionsEndDate").datepicker(); 
}); 

के अंत में इस डाल, लेकिन यह कुछ भी नहीं है और कोई त्रुटि फेंक दिया जाता है।

मुझे jquery चलाने के लिए कैसे मिल सकता है? मैं App.Transaction.find({startDate: startDateVariable, endDate: endDateVariable})

पर आपकी सहायता के लिए धन्यवाद के लिए इनपुट तिथि चर को कैसे जोड़ूं!

संपादित करें सुधार jQuery चल रहा है लेकिन दृश्य प्रस्तुत होने से पहले यह चल रहा है। क्या एम्बर के पास एक हुक या कुछ है जिसे मैं कॉल कर सकता हूं जब मेरा दृश्य प्रस्तुत किया जाता है?

उत्तर

11

इसके बजाय jQuery (document) .ready() में datepicker प्रारंभ डालने के दृश्य के didInsertElement विधि

App.TransactionsView = Ember.View.extend({ 
    templateName: 'transactions', 
    didInsertElement: function() { 
     jQuery("#transactionsStartDate, #transactionsEndDate").datepicker();  
    } 
}); 

उपयोग एंबर के TextField ध्यान में रखते हुए बनाया गया

<script type="text/x-handlebars" data-template-name="transactions"> 
<form> 
    <label for="transactionsStartDate">Start Date</label> 
    {{view Ember.TextField id="transactionsStartDate" valueBinding="startDate"}} 
    <label for="transactionsEndDate">End Date</label> 
    {{view Ember.TextField id="transactionsEndDate" valueBinding="endDate"}} 
    <button {{action fetchTransactions}}>Fetch Data</button> 
</form> 
</script> 

में हुक और परिभाषित कार्रवाई fetch नियंत्रक पर प्रतिक्रिया

App.TransactionsController = Ember.ArrayController.extend({ 
    fetchTransactions:function() { 
     this.set('model', App.Transaction.find({startDate:this.get('startDate'), endDate:this.get('endDate')}));  
    } 
}); 
+0

एम्बर 2.0 संस्करण के बारे में क्या? दृश्य इसमें बहिष्कृत हैं। –

+0

@MaksimLuzik यह अभी भी किया गया है 2.0 घटकों पर प्रवेश करें। https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/#toc_integrating-with-third-party-libraries-with-code-didinsertelement-code –