Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用量角器+;有棱角的_Javascript_Angularjs_Protractor - Fatal编程技术网

Javascript 如何使用量角器+;有棱角的

Javascript 如何使用量角器+;有棱角的,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,在通过repeater查找元素时,是否有方法访问迭代器索引/键 protractor.By.repeater("(id,cat) in pets") 在本例中,我希望能够访问猫的“id”。“id”不是表中显示为值的列之一,它用于导航,如ng click=“goto('/pets/'+cat.id)”。HTML中没有绑定,例如{{id}或{{cat.id},因此执行以下操作: ptor.findElements(protractor.By.repeater("(id,cat) in pets")

在通过repeater查找元素时,是否有方法访问迭代器索引/键

protractor.By.repeater("(id,cat) in pets")
在本例中,我希望能够访问猫的“id”。“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) in pets')).then(function (arr) { arr[0].evaluate('cat.id').then(function (id) { console.log(id); }); }); ptor.findElements(量角器By.repeater('pets')(id,cat)),然后(函数(arr){ arr[0]。计算('cat.id')。然后(函数(id){ console.log(id); });
}); 您希望评估页面上没有的内容,因此“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.
});