2016-04-27 10 views
0

ist hier der entsprechende Code:lodash/Strich - mit bind mit Methodenaufruf und Methode bleibt ungebunden

render: function(args, callback) { 

     connectorPromise = ConnectorDelegate.currentConnectors(); 
     iconPromise = connectorUtils.getIconList(); 
     // when promises resolve call method and bind it to "this" 

     $.when(connectorPromise, iconPromise).then(_.bind(this.createConnectorCollection), this); 
    }, 

    createConnectorCollection: function(connectors, iconList) { 
     // This is the window object in here 
    }... 

Im Innern der Render-Methode „die“ richtig gebunden. Wenn ich die createConnectorCollection-Methode aufruft, wird "this" zum Fensterobjekt. Wie binde ich das korrekt an die Methode?

Antwort

1

Es sieht aus wie Ihre Schließung Klammern fehl am Platze ist:

$.when(connectorPromise, iconPromise).then(_.bind(this.createConnectorCollection, this)); 
+0

Dank! - Ich wusste, dass es etwas Dummes war. –

0

Sie sollten den Kontext als zweiten Parameter an bind übergeben, nicht an then Methode.

Es lohnt sich zu erwähnen, dass underscore ist, erfordert nicht, wie Sie nativebind Methode verwenden:

this.createConnectorCollection.bind(this) 
Verwandte Themen