Как получить индекс и ключ итератора, используя транспортир + угловой?

Есть ли способ получить доступ к индексу / ключу итератора при поиске элементов по повторителю?

protractor.By.repeater("(id,cat) in pets")

В этом случае я ищу, чтобы получить доступ к "id" кота. "Идентификатор" НЕ является одним из столбцов, отображаемых в качестве значения в таблице, он используется для навигации как ng-click="goto('/pets/'+cat.id)", В HTML нет привязки, такой как {{id}} или же {{cat.id}} сделав следующее:

ptor.findElements(protractor.By.repeater("(id,cat) in pets").column('cat.id'))

возвращает пустой элемент: []

Я также безуспешно пытался сделать что-то вроде:

ptor.findElement(protractor.By.repeater("(id,cat) in pets").row(0).column('cat.id'))

Как правильно получить доступ к этому конкретному индексу?

Вот краткий синтаксис ответа Jmr:

ptor.findElements(protractor.By.repeater('(id, cat) у домашних животных')).then(function (arr) {
    arr[0].evaluate('cat.id').then(function (id) {
        console.log(ID);
    }); 
});

1 ответ

Решение

Вы пытаетесь оценить то, чего нет на странице, поэтому методы 'row' и 'column' не будут работать. Если вы просто используете повторитель, вы получите массив всех строк. Затем вы можете использовать evaluate Команда для оценки угловых выражений в контексте этого элемента. Например (используя сокращенный синтаксис),

element.all(by.repeater('(id, cat) in pets')).then(function(arr) {
  arr[0].evaluate('cat.id'); // This is a promise which resolves to the id.
});
Другие вопросы по тегам