Ember.js donne boucle infinie lors de l'utilisation balise {{#each}} dans le modèle
-
28-10-2019 - |
Question
Utilisation ember.js je reçois une boucle sans fin avec le code suivant:
Contrôleur:
App.activityDetailsController = Em.Object.create({
activityBinding : 'App.navController.selectedActivity',
data : function(){
var things = new Array();
if(this.activity){
var info = this.activity.get('info');
var len = info.length;
for(var i=0; i<len; i++){
for(prop in info[i]){
things.push({"key": prop, "value" : info[i][prop]});
}
}
}
return things;
}.property('activity')
})
Voir:
App.ActivityDetailsView = Em.View.extend({
templateName : 'activity-details',
activityBinding : 'App.activityDetailsController.activity',
dataBinding : 'App.activityDetailsController.data'
})
Modèle:
<script type="text/x-handlebars" data-template-name="activity-details">
<div id="info">
{{#each data}}
{{key}}: {{value}}<br />
{{/each}}
</div>
</script>
Lorsque vous essayez de charger cette page, la fonction « données » dans le contrôleur est appelé à l'infini.
Si je supprime le {{#each}} {{/}} chaque bloc de la vue, il n'y a pas de problème et l'utilisation de {{data.Length}} dans le modèle donne la sortie correcte.
Toutes les idées pourquoi ce boucles sans fin? Si je supprime « activité » de l'appel de la propriété, il le problème est le même.
Merci,
La solution
Faites votre cacheable()
de propriété "données". Voir réponse ebryn à une question connexe pour la raison.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow