2015-08-10 4 views
5

मैं एक माता पिता के घटक जिसका टेम्पलेट https://www.npmjs.com/ember-cli-dropzonejs से एक dropzone घटक है: मैं एक विधि fileReceived कहा जाता है,तक पहुँचना "इस" के रूप में कॉलबैक emberjs से माता-पिता नेस्ट घटक

{{drop-zone url='#' addRemoveLinks=true success=fileReceived}} 

माता पिता नियंत्रक में जो किया जा रहा है जब सफलता घटना ड्रॉपज़ोन पर ट्रिगर होती है। हालांकि, मैं अन्य विधियों को कॉल करना चाहता हूं जो नियंत्रक पर संग्रहीत हैं जब fileReceived विधि कहा जाता है लेकिन मैं this तक नहीं पहुंच सकता। मैंने से this पर didInsertElement पर एक आवृत्ति चर सेट करने का प्रयास किया, लेकिन यह मुझे मेरे घटक की बजाय विंडो देता है।

यह मेरा माता-पिता घटक नियंत्रक है:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    self:null, 
    didInsertElement:function() 
    { 
    this.set('self', this); 
    }, 
    fileReceived: function (file) { 
    //Validate sheet 

    this.sendAction('doStuff', file); //"this" returns a dropzone object instead of parentObject 
    //this.doStuff(file); 
    }, 
    actions: { 
    doStuff: function (file) { 
     //do stuff with the file 
    } 
}); 

उत्तर

2

मुझे लगता है कि fileReceived कार्यों के भीतर होना चाहिए, और फिर this.sendActionthis.send होना चाहिए। तो मुझे लगता है कि यह वही चीज होगी जो आप चाहते हैं?

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
    fileReceived: function (file) { 
     //Validate sheet 

     this.send('doStuff', file); //"this" returns a dropzone object instead of parentObject 
     //this.doStuff(file); 
    }, 
    doStuff: function (file) { 
     //do stuff with the file 
    } 
}); 

संपादित:

टिप्पणी आप भी करने के लिए

{{drop-zone url='#' addRemoveLinks=true success=(action 'fileReceived')}} 
+0

मुझे लगता है कि कोशिश की थी और सोचा था कि यह काम नहीं किया अपने टेम्पलेट बदलने के लिए की जरूरत में चर्चा की। मैंने अभी कोशिश की और मुझे एहसास हुआ कि मुझे अपना टेम्प्लेट इस तरह दिखने की ज़रूरत है: '{{ड्रॉप-जोन url = '#' addRemoveLinks = true success सफलता = = action 'fileReceived')}}। अब यह कार्रवाई उठा रहा है और काम कर रहा है। – Asagohan

+0

'{{ड्रॉप-जोन url = '#' addRemoveLinks = true success सफलता =" fileReceived "}} की कोशिश करने का सुझाव देने वाला था, लेकिन ऊपर आपका सिंटैक्स नए एम्बर के लिए बेहतर है – Knightsy

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