2016-06-21 10 views
0

Ich definiere eine Backbone.collection aus meiner Datenbank. Ich möchte eine Funktion ausführen, die im Erfolgsrückruf einen Rückruf hat. Wie könnte ich es tun?Backbone.js: Rufen Sie eine Funktion, die Parameter hat, von Fetch-Erfolg

function firstFunction(callback){ 
    callback() 
} 

myCollection = new Backbone.Collection 
myCollection.url = /collection 
myCollection.fetch({ 
    success: firstFunction(callback)  
}) 

Vielen Dank!

+3

'Erfolg: function() {firstfunction (Rückruf)} '? –

+0

Sie könnten auch 'success: callback' haben. Wenn die 'firstFunction' nur' callback() '' aufrufen soll, dann könntest du es komplett weglassen. –

Antwort

1

Wenn Sie einig Callback-Funktion auf Erfolg führen Sie auf ‚sync‘ Ereignisse in Ihrer Ansicht nur abonnieren können (wenn Sie dort holen nennen):

var view = new Backbone.View.extend({ 
    initialize: function() { 
    this.listenTo(this.collection, 'sync', this.yourFirstCallback); 
    }, 
    yourFirstCallback: function() { 
    //code of yourFirstCalback here 
    this.yourSecondCallback(); 
    }, 
    yourSecondCallback: function() { 
    //code of yourSecondCallback 
    } 
}); 

Aber eigentlich ist dies nicht ganz klar, was zu tun Du willst genau.

Wenn Sie "Erfolg" -Eigenschaft verwenden möchten, können Sie es auf zwei Arten tun. 1. Sie können die Callback-Funktion angeben direkt für 'Erfolg':

youCollection.fetch({ 
    success: yourFirstCallback 
}); 
function youFirstCallback(collection, response, options) { 
    //do your staff here 
    yourSecondCallback(); 
} 
function yourSecondCallback() { 
    //do your staff here 
} 

2. Sie können Ihre Callback-Funktion in 'Erfolg' Rückruf durchführen:

youCollection.fetch({ 
    success: function(collection, response, options) { 
    //what you want to do first is here 
    yourSecondCallback(); 
    } 
}); 
function youCallback() { 
    //do your staff here 
} 
+0

Vielen Dank @JakeBlues und tut mir leid, weil ich denke, dass ich meine Frage nicht so gut erklärt habe. Ich möchte eine Funktion im Erfolgs-Callback ausführen und wenn diese zuerst beendet wird, um das CallBack aufzurufen. Ich möchte sicher sein, dass es genau nach dem Ende der ersten Funktion ausgeführt wird. Denkst du, ist es möglich, wie du es mir erklärt hast? – Leticia

+0

Sie können es in irgendeiner Weise tun, die ich bereits oben erklärt habe. Ich habe meine Antwort für Sie aktualisiert. –