2014-09-11 19 views
6

Cerco un modo semplice per restituire una matrice di valori da di all.(by.repeater)goniometro gamma ritorno di valori da ripetitore

Fondamentalmente, voglio solo un modo semplice per creare un array di usernames dato un ripetitore come user in users goniometro.

In questo momento mi sto costruendo in questo modo:

allUsers = element.all(by.repeater('user in users').column('user.username')).then(function(array){ 
    var results = [] 
    var elemLength = array.length 
    for(var n = 0; n < elemLength; n++){ 
    array[n].getText().then(function(username){ 
     results.push(username) 
    }) 
    } 
    return results 
}); 
expect(allUsers).toContain(newUser) 

C'è un modo più conciso riutilizzabile per fare questo integrato in goniometro/gelsomino che io proprio non riesco a trovare?

risposta

11

AS alecxe detto, l'uso mappa per farlo. Ciò restituirà una differita che risolverà con i valori in un array, quindi se avete questo:

var mappedVals = element.all(by.repeater('user in users').column('user.username')).map(function (elm) { 
    return elm.getText(); 
}); 

Si risolverà in questo modo:

mappedVals.then(function (textArr) { 
    // textArr will be an actual JS array of the text from each node in your repeater 
}); 
+3

+1 per elaborare più sulla 'map() '! – alecxe