2015-12-16 33 views
7

Làm thế nào tôi có thể lấy ng-mô hình trong ng-lặp lại với thước đo góc?Nhận ng-mô hình trong ng-repeat với Thước đo góc

<div ng-repeat="field in master.linker | orderBy:'country.name'"> 
    <div> 
     <p> {{ field.country_name }} </p> 
     <input ng-model="field.text"> 
    </div> 
</div> 

tôi sử dụng này, nhưng không thành công:

var result = element.all(by.repeater('field in master.linker').column('field.text')); 

result.forEach(function(entry) { 
    console.log(entry); 
}); 

Tôi muốn so sánh:

result.forEach(function(entry) { 
    if (entry.country_name === 'en') {  
     expect(entry.text (from ng-repeat)).to.eventually.equal(value) 
    } 
}); 

Trả lời

5

Các .column() sẽ chỉ làm việc cho binding s, không phải là model s.

Trong trường hợp của bạn, sử dụng by.model() locator:

var result = element.all(by.repeater('field in master.linker')); 

result.each(function(entry) { 
    var input = entry.element(by.model("field.text")); 

    // do smth with the input 
}); 

Nếu bạn muốn nhận được các giá trị đầu vào, sử dụng map():

var inputValues = result.map(function(entry) { 
    return entry.element(by.model("field.text")).getAttribute("value"); 
}); 

// printing out input values 
inputValues.then(function (values) { 
    console.log(values); 
}); 

Trả lời câu hỏi bổ sung từ một lời nhận xét:

Tôi có một mảng, không có các trường khác từ ng-lặp lại của tôi, làm thế nào tôi có thể so sánh "if (field.country_name ===" "vi") {mong đợi (field.text) .to.eventually.equal (value)} "?

Sử dụng filter():

var fields = element.all(by.repeater('field in master.linker')); 
fields.filter(function (field) { 
    return field.element(by.binding("field.country_name")).getText().then(function (country) { 
     return country === "en"; 
    }); 
}).then(function (filteredFields) { 
    var input = filteredFields[0].element(by.model("field.text")); 
    expect(input.getAttribute("value")).to.eventually.equal(value); 
});; 
+0

@ JérémieChazelle xin lỗi, cập nhật. – alecxe

+0

Tôi có một đối tượng ptor: {ptor_: {controlFlow: [Function], –

+0

@ JérémieChazelle nếu bạn đang cố gắng in ra 'input', chắc chắn - bạn sẽ nhận được rằng vì đây là một' ElementFinder' dụ. Đầu ra mong muốn của bạn là gì? Các giá trị của các yếu tố đầu vào? Cảm ơn. – alecxe

Các vấn đề liên quan