2016-08-03 22 views
0

einen Drag & Drop-Plugin für Übergabe von Daten, ondrop Ereignis Abrufen von Daten wie unterAngularJS - Erstellen mehrdimensionales Array

Ctrl

var streamArr = []; 
$scope.onDrop = function (data, dragElement, dropElement, event) { 
    streamArr.push({'userId':userId,'divid':divId,'userName':userName,'streamingState':$rootScope.route}); 
}); 

Ausgabe

10 
divPictureBox00 
User1 
live 

Jetzt, Wann immer Benutzer etwas fallen lassen, muss ich die Daten in ein Array schieben, damit t Die resultierende itesm wäre wie folgt:

streamArr: [ 
{userId: 10, divId: 'divPictureBox00', userName: 'User1', streamingState:'live'}, 
{userId: 11, divId: 'divPictureBox01', userName: 'User2', streamingState:'live'}, 
{userId: 12, divId: 'divPictureBox02', userName: 'User3', streamingState:'recorded'}, 
{userId: 10, divId: 'divPictureBox00', userName: 'User1', streamingState:'live'}, 
] 

Aber die Daten werden nicht in diesem Array geschoben. Wie gehe ich vor?

Antwort

0

Das liegt daran, dass Sie überall mit dem gleichen Objekt zu tun haben. Versuchen Sie jedes Mal ein neues Objekt zu erstellen, wenn Sie die Funktion aufrufen, und schieben Sie dann das Objekt in das Array.

var streamArr = []; 
$scope.onDrop = function (data, dragElement, dropElement, event) { 
var obj = new Object(); 
obj.userId = userId; 
obj.divId = divId; 
obj.userName = userName; 
obj.streamingState = $rootScope.route; 

streamArr.push(obj); 

});

+0

Das schafft mehrere Objekte wie '[Objekt {userId = 1480, divId = "divPictureBox00", username = "User1"}, Objekt {userId = 1480, divId = "divPictureBox00", username = "User1"}, Objekt {userId = 1480, divId = "divPictureBox01", userName = "User2"}] '. Wie mache ich ein einzelnes Objekt? – Slimshadddyyy

+0

Sie brauchten ein Array von mehreren Objekten richtig? –