Wie füge ich eine benutzerdefinierte Methode, um eine backbone-Modell?
Ich versucht habe:
initialize: function() {
if (this.get("id") == "modelOfInterest") {
var func = function() {
//do some stuff with the model
}
_.bind(func, this)
}
}
und
initialize: function() {
if (this.get("id") == "modelOfInterest") {
var func = function() {
//do some stuff with the model
}
this.on("func", func, this);
}
}
Jedoch in beiden Fällen:
myModelInstance.func(); //object has no method func
Würd ich lieber nicht verwenden _.bindAll()
.
Ich habe bearbeitet den code oben, um zu zeigen, dass ich versucht bin, zu binden func, um nur ein Modell. Das Modell wird initialisiert, wenn es zu einer collection Hinzugefügt : alle Modelle Feuer initialisieren zur gleichen Zeit und ich will einfach nur binden Sie func, um einer von Ihnen.
InformationsquelleAutor | 2013-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Irgendeinem Grund nicht, das offensichtliche zu tun?
Ich habe bearbeitet meine ursprüngliche Frage soll dies verdeutlichen.
Dieser funktioniert. Ich denke, es bedeutet, dass meine func ist angebracht, um alle Modelle in der Sammlung, aber es spielt keine Rolle, so lange wie ich nicht binden, jedenfalls bei Ihnen.
InformationsquelleAutor Stephen Thomas
Zuweisen
func
als eine Eigenschaft des Modells in denif
block.Auch das hat nicht funktioniert, obwohl es mich auf der rechten Spur. Ich definiere die Funktion in das Modell außerhalb initialisieren damit gehört es zu den Modell. Dann die dieses.auf('func'... Zeile funktioniert. Ich weiß nicht, warum.func innerhalb von initialisieren ist nicht anbringen, wird die Funktion für das Modell.
InformationsquelleAutor fbynite
Statische Methoden deklariert werden sollte, die auf einem zweiten Wörterbuch, innerhalb der .erweitern Sie rufen:
http://danielarandaochoa.com/backboneexamples/blog/2013/11/13/declaring-static-methods-with-backbone-js/
InformationsquelleAutor Felipe Baytelman
Versuchen Sie dies:
Und so:
InformationsquelleAutor joni jones