I eine übergeordnete Komponente, deren Vorlage Zugriff hat eine Dropzone Komponente aus https://www.npmjs.com/ember-cli-dropzonejs enthält:„this“ als das Elternteil von Rückrufen emberjs verschachtelt Komponente
{{drop-zone url='#' addRemoveLinks=true success=fileReceived}}
In der übergeordneten Steuereinheit, habe ich ein Verfahren fileReceived
, die aufgerufen wird, Wird aufgerufen, wenn das Erfolgsereignis in der Dropzone ausgelöst wird. Ich möchte jedoch andere Methoden aufrufen, die auf der Steuerung gespeichert sind, wenn die Methode fileReceived
aufgerufen wird, aber ich kann nicht auf this
zugreifen. Ich habe versucht, eine Instanzvariable namens self
zu this
auf didInsertElement
, aber es gibt mir Fenster statt meiner Komponente.
Dies ist meine Mutter Component-Controller:
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
}
});
Ich versuche tat, und dachte, dass es nicht funktioniert hat. Ich habe es gerade noch einmal ausprobiert und festgestellt, dass ich meine Vorlage wie folgt aussehen lassen muss: '{{drop-zone url = '#' addRemoveLinks = true Erfolg = (Aktion 'fileReceived')}}'. Jetzt nimmt es die Handlung auf und scheint zu arbeiten. – Asagohan
War im Begriff, '' {{drop-zone url = '#' addRemoveLinks = true success = "fileReceived"}} 'vorzuschlagen, aber deine Syntax oben ist besser für neuere Ember – Knightsy