la syntaxe que vous essayez ne fonctionne pas parce que les paramètres envoyés dans l'ensemble de la méthode est un objet littéral. les valeurs sur le côté gauche de l' : sont traités comme des littérale des noms, alors que les valeurs de la droite peut être exécuté / code interprété.
il ya quelques choses que vous pouvez faire, cependant:
obtenir, mise à jour, et de définir l'ensemble de la matrice:
var a = myModel.get("myArray");
a[0] = 5
myModel.set("myArray", a);
myModel.get("myArray"); //=> [5, 1, 2]
l'avantage de cette façon de faire est que vous obtenez la norme "changer" les événements déclenchés à partir du modèle parce que vous êtes à la définition de la valeur de l'attribut dans le modèle.
une autre façon de faire serait de raccourci le processus en utilisant un obtenir et de mettre à jour le tableau directement:
myModel.get("myArray")[0] = 5
myModel.trigger("change");
myModel.trigger("change:myArray");
myModel.get("myArray"); //=> [5, 1, 2]
l'inconvénient ici est que ce ne sera pas le feu à la "modification" des événements parce que vous n'êtes pas à l'appel de la méthode de jeu. donc, si vous avez besoin de ces événements, vous devez le feu vous-même, comme je l'ai montré.