J'ai un problème dans flex qui cause un peu de mal de tête!Deux objets créés avec la même adresse dans Flex
J'ajoute des objets à une ArrayCollection mais, ce faisant, une autre ArrayCollection récupère également ces modifications même s'il n'y a pas de liaison.
Je peux voir à partir du débogage que les deux AC ont la même adresse mais pour la vie de moi ne peut pas comprendre pourquoi.
J'ai deux collections Array:
model.index.rows //The main array collection
model.index.holdRows //The array collection that imitates the above
Ces données fantôme liaison se produit uniquement pour la première itération dans la boucle et pour tous les autres, il me contenterai écrire la fois.
La raison pour laquelle cela s'avère gênant est qu'il crée des entrées en double dans mon DataGrid.
public override function handleMessage(message:IMessage):void
{
super.handleMessage(message);
if (message is IndexResponse)
{
var response:IndexResponse = message as IndexResponse;
model.index.rows.removeAll();
model.index.indexIsEmpty = response.nullIndex;
if (model.index.indexIsEmpty !== true)
{
//Update the index model from the response. Note: each property of the row object will be shown in the UI as a column in the grid
response.index.forEach(function(entry:EntryData, i:int, a:Array):void
{
var row:Object = { fileID: entry.fileID, dadName: entry.dadName };
entry.tags.forEach(function(tag:Tag, i:int, a:Array):void
{
row[tag.name] = tag.value;
});
model.index.rows.addItem(row);
});
if(model.index.indexForNetworkView == true){
model.index.holdRows.source = model.index.holdRows.source.concat(model.index.rows.source);
model.index.indexCounter++;
model.index.indexForNetworkView = false;
controller.indexController.showNetwork(model.index.indexCounter);
}
model.index.rows.refresh();
controller.networkController.show();
}
}
Quelqu'un at-il d'autre qui a rencontré quelque chose simillar proposer une solution?
Bonne aide merci beaucoup! – James
Pas de problème, a eu le même problème quelques mois en arrière et comme vous pouvez le voir a également été résolu ici :) – Ladislav