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,

Était-ce utile?

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
scroll top