Ajax-request in Backbone-Ansicht, render-Funktion
Möchte ich weitergeben eine zusätzliche variable (die userid) und vor dem Rendern mit meinem Rückgrat anzeigen. Ich bin immer die, die extra variable mit einem ajax-request, sondern weil asynchron ist, denke ich, dass meine Seite gerendert wird, bevor ich die variable. Einfachheit halber sagen wir, ich habe dies in meinem Rückgrat anzeigen :
PostsApp.Views.Post = Backbone.View.extend({
template: _.template($('#post-template').html()),
render: function(){
var newObject = this.model.toJSON();
$.ajax({
url:"/user",
success:function(result){
newObject.twittername = result.name; ;
}
});
this.$el.html(this.template(newObject));
}
});
Ich denke, ich kann.$el.html(dies.Vorlage(newObject)); in den callback-aber als 'das'refers etwas anderes.. Kann jemand denken, der eine Arbeit um für dieses?
Oder ist es völlig sehr schlecht, senden Sie eine solche Anfrage in die render-Funktion.
InformationsquelleAutor Gorkem Yurtseven | 2013-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie richtig in Ihrer Annahme. Es wird nicht korrekt wiedergegeben.
Die einfache Lösung
Genau wie der allgemeinere Fall, können Sie die Darstellung innerhalb der
success
Rückruf.Die besser beheben
Was ich tun würde, ist:
.fetch
change
Veranstaltungen in der Ansicht, und rufen Sie Rendern, auf solchen events.Dies ist, weil der Blick sollte nicht verantwortlich für änderung von Modelldaten im Rückgrat. Es mischen "business logic", mit der Präsentation, und es kann hässlich werden ziemlich schnell.
[Ich denke, dieses Beispiel Zwei von Addy Osmani ist "Rückgrat Grundlagen" soll Ihnen eine Allgemeine Idee, wie man diese Art von Struktur angeordnet ist.
Zum besseren fixieren (y)
InformationsquelleAutor Benjamin Gruenbaum