AngularJS: транспортир: как получить содержимое вложенного тега ng-repeat

avatar
ndNextLearn
7 апреля 2018 в 23:24
72
1
0

Я новичок в инструменте тестирования Protractor для AngularJS. У меня есть следующий код, который я хочу протестировать с помощью Protractor

HTML-часть

<table>
     <tr ng-repeat="row in rowcolumnsetup" id="{{$index}}">
         <td ng-repeat="column in rowcolumnsetup" id="{{$index}}" ng- 
                style="getClass($parent.$index,$index)"></td> 
     </tr>
</table>

Javascript

var targetByRow = [[]];

//Setup Target Row

for(var row = 0 ; row < 7 ; row++) {
  targetByRow[row] = [7];

  for(var column = 0 ; column < 7 ; column++) {
    targetByRow[row][column] = {
            class : "",
            Status : ""
    };
  }
}

$scope.rowcolumnsetup = targetByRow;

Теперь в spec.js в Protractor я хочу проверить, имеет ли rowcolumnsetup какое-либо значение в поле класса или статуса. Итак, чтобы получить доступ к rowcolumnsetup, я могу получить строку, но не могу понять, как получить столбец

.
element.all(by.repeater('row in rowcolumnsetup')).then(function(rows) {
  rows.forEach(function(row) {
    // Work in progress to retrieve column
  });
});
Источник
yong
10 апреля 2018 в 13:42
0

Вы хотели указать значение атрибута ng-style в поле класса? и какое значение вы хотите присвоить полю статуса?

Ответы (1)

avatar
yong
10 апреля 2018 в 13:51
0
var tableData = element.all(by.repeater('row in rowcolumnsetup')).map(function(row) {
  var tds = row.all(by.css('td'));

  return {
     // give ng-style value of first td cell to class
     class: tds.get(0).getAttribute('ng-style'),
     // assume give the text of first td cell to status
     status: tds.get(0).getText()
  };
});

tableData.then(function(datas){
  //datas[0].class  ng-style value of first cell in first row
})