Comment observer l'ajout d'un élément au tableau
Je veux observer l'ajout d'élément à un tableau.
ci-dessous programme de test.
<!-- library load -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.6.1.min.js"%3E%3C/script%3E'))</script>
<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-0.9.5.min.js"></script>
<script type="text/x-handlebars">
{{#each App.ArrayController.array}}
{{foo}}
{{/each}}
<button onclick="App.ArrayController.addElement();">add</button>
</script>
<script type="text/javascript">
var App = Em.Application.create();
App.ArrayController = Em.Object.create({
array: [{foo:1}, {foo:2}, {foo:3}],
addElement: function() {
this.array.pushObject({foo:4});
},
elementAdded: function() {
alert('ok'); //not invoked...
}.observes('array')
})
</script>
Mais quand l'appel addElement, elementAdded n'est pas appelé...
Comment dois-je observer l'ajout d'élément?
source d'informationauteur arumons
Vous devez vous connecter pour publier un commentaire.
utilisation observe('array.@each') à la place. jsfiddle code est ici
Vous pouvez utiliser de Braise.ArrayController et remplacer la fonction arrayDidChange
Et optionnel appeler d'autres méthodes, à partir de là.
Et vous pouvez utiliser Les observateurs
Découvrez ce violon pour voir comment faire pour savoir exactement ce que l'objet a été ajouté ou supprimé du tableau à l'aide de ArrayController.