2016-07-05 7 views
0

In meiner Word-Cloud-Anwendung habe ich 2 Direktiven, eine Wortwolke Direktive und Tabelle Direktive, dass, wenn ein Wort in der Wortwolke ausgewählt ist, es an die Tabelle zu benachrichtigen, damit die Tabelle auch auswählen das entsprechende Wort. Die Wort-Wolke und die Tabelle von Versprechen mit, die im Dienst befindet, und ich möchte das Versprechen zerstören:Angular: Wie ein Versprechen zu zerstören

Servicecode:

this.selectedDefferd = $q.defer(); 

this.selectedPromise = this.selectedDefferd.promise; 

    notifySelect(id) 
    { 
     this.selectedDefferd.notify({newData: this.data[id]}); 
    } 

setSelect(callBack) { 
    this.selectedPromise.then(null, null, callBack); 
} 

Wortwolke Richtlinie Code:

d3.select(this).on("click", function (d) { 
... 
ctrl.wordService.notifySelect(d.id); 
} 

Tabelle Richtlinie

Vielen Dank im Voraus,

Harel

+0

Was genau meinen Sie mit "zerstören"? Warum willst du das und was nützt es? – Bergi

+0

$ element.on ("$ destroy", funktion() { console.log ("wordCloud controller zerstört"); }) Um Speicherverlust zu vermeiden –

+0

Sie können einfach 'this.selectedDefferd = null ', aber Ich denke nicht, dass es sonst zu einem Speicherleck führen würde. – Bergi

Antwort

0

Mit ablehnen() können Sie ein Versprechen

this.selectedDefferd.reject('Rejected!'); 

Der zweite Parameter des Versprechens ablehnen für die Ablehnung ist.

promise.then(function(greeting) { 
    alert('Success: ' + greeting); 
}, function(reason) { 
    alert('Failed: ' + reason); 
}, function(update) { 
    alert('Got notification: ' + update); 
}); 
Verwandte Themen