Requête Ajax de la colonne vertébrale Vue de rendre la fonction
Je veux passer une variable supplémentaire (userid) avec avant le rendu de mon épine dorsale de la vue. Je suis arriver la variable supplémentaire avec une requête ajax, mais parce que c'est asynchrone, je pense que ma page est en cours de rendu avant que je sois de la variable. Pour des raisons de simplicité permet de dire que j'ai cela dans mon épine dorsale de vue :
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));
}
});
Je suppose que je peux mettre cette.$el.html(ce.modèle(newObject)); dans le rappel, mais que " ce'refers à autre chose.. quelqu'un Peut penser à un travail autour de cela?
Ou est-il complètement très mauvais pour envoyer une demande dans la fonction rendu..
OriginalL'auteur Gorkem Yurtseven | 2013-06-14
Vous devez vous connecter pour publier un commentaire.
Vous avez raison dans votre hypothèse. Il ne s'afficheront pas correctement.
La solution simple
Comme le cas plus général, vous pouvez effectuer le rendu de l'intérieur de la
success
de rappel.Le mieux fixer
Ce que j'avais à faire:
.fetch
change
événements dans la vue, et l'appel de rendre à de tels événements.C'est parce que la vue ne doit pas être responsable de la modification du modèle de données de la colonne vertébrale. C'est le mélange "logique d'entreprise", avec la présentation et il peut devenir laid assez rapide.
[Je pense que cet exemple Deux de Addy Osmani est "l'épine Dorsale Fondamentaux" devrait vous donner une idée générale sur la façon dont ce genre de structure.
Pour les mieux résoudre (y)
OriginalL'auteur Benjamin Gruenbaum