2015-12-16 20 views
7

ng-modelini ng-tekrarlayıcıyla nasıl çekebilirim?Getirici ile ng-modelini ng-modeline getirin

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

Ben, ancak başarılı olamadı bu kullanın:

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

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

karşılaştırmak istiyorum:

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

cevap

5

.column() sadece binding s değil model s için çalışacak. Eğer giriş değerlerini almak istiyorsanız

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 
}); 

, map() kullanın:

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); 
}); 

bir yorumu da ek sorusunu yanıtlayan: Senin durumunda

, by.model() locator kullanmak

Bir dizim var, ng-yinelemden başka alanlar olmadan, "if (field.country_name ===" "en") {expect (field.text) .to.eventually.equal (value)} ile nasıl karşılaştırabilirim? "?

Kullanım 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 @ üzgün, güncellendi. – alecxe

+0

Nesne ptorum var: {ptor_: {controlFlow: [İşlev], –

+0

@ JérémieChazelle, 'input' yazdırmaya çalışıyorsanız, emin olun - bu bir ElementFinder örneği olduğundan. İstediğiniz çıktı nedir? Girdilerin değerleri? Teşekkürler. – alecxe

İlgili konular