È possibile loop su una matrice calcolata in Emberjs?
-
13-12-2019 - |
Domanda
Sto cercando di andare in giro su un array di proprietà calcolato in manubri.In questo esempio, posso farlo per un normale array, ma non una matrice calcolata: http://jsfiddle.net/gh7qr/
Cosa dovrebbe essere la sintassi giusta per il loop su una proprietà calcolata in manubrio?
Soluzione
Sì, è possibile. Ma hai dimenticato return
il tuo array calcolato e devi aggiungere cacheable()
a proprietà calcolate, che restituiscono un oggetto e non un primitivo. Altrimenti entrerai in un anello infinito (vedi discussione https://github.com/emberjs /ed.js/issues/38 ) Dai un'occhiata a Gordon Hempton è eccellente Blog Post Informazioni su Attuale Ember.js Gotchas, tra gli altri in merito alle proprietà calcolate. Tuttavia, dal momento che commettere 626d23f Il problema con la cache è stato risolto.
Un esempio corretto del tuo codice è qui: http://jsfiddle.net/gh7qr/4/
<script type="text/x-handlebars" >
{{#each App.games}}
{{this}}
{{/each}}
{{#each App.gamesA}}
{{this}}
{{/each}}
</script>
.
App = Ember.Application.create({
games: [1, 2, 3],
gamesA: Em.computed(function() {
return this.get('games').map(function(game) {
return game + 'a';
})
}).property('games').cacheable()
});
.