<div ng-repeat="obj in list">
</div>
此obj有6个属性,如姓名,国家,州,城市,街道和联系人。我已经为此编写了以下代码,但如果我尝试在obj中获取存储的值,它会给我未定义的值。
var elm = element.all(by.repeater('obj in list'));
elm.then(function(obj){
console.log("Number of Rows : "+ rows.length);
for(var i=0; i< rows.length; i++){
console.log("App name : " + rows[i].name);
}
});
这是打印&#34;应用程序名称:undefined&#34;仅
答案 0 :(得分:2)
请记住,您正在使用承诺,因此您无法记录未解决的承诺。量角器中的所有执行都是承诺。
其次,您正在使用rows
,但您从未定义过它。 rows
与obj
相同吗?
第三,尝试避免使用Promise的for
循环。最好使用例如量角器的each。如果你这样做,你的代码就像这样
var elm = element.all(by.repeater('obj in list'));
elm.each(function(obj, index) {
// Will print 0 First, 1 Second, 2 Third.
obj.getText().then(function (text) {
console.log(index, text);
});
});
答案 1 :(得分:1)
首先,ng-repeat不包含对象,它包含一个列表。在你的情况下,一个数组。 如果您有嵌套列表(ng-repeat in ng-repeat),请在您的问题中指明。否则,以下代码应该适合您。
let elm = element.all(by.repeater('obj in list'));
elm.getText().then(function(text){
console.log(text);
});