2015-12-16 25 views
7

के साथ एनजी-दोहराने में एनजी-मॉडल प्राप्त करें मैं एनजी-मॉडल को प्रोटैक्टर के साथ एनजी-दोहराने में कैसे प्राप्त कर सकता हूं?प्रोटैक्टर

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

मैं इस का उपयोग करें, लेकिन सफलता नहीं मिली:

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

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

मैं तुलना करने के लिए करना चाहते हैं:

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

उत्तर

5

.column() केवल binding रों, नहीं model रों के लिए काम करेगा।

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() का उपयोग करें::

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

एक टिप्पणी से अतिरिक्त प्रश्न का उत्तर देना:

आपके मामले में, by.model() locator का उपयोग

मेरे पास मेरे एनजी-दोहराने से अन्य फ़ील्ड के बिना एक सरणी है, मैं "if (field.country_name ===" "en") {expect (field.text) .to.eventually.equal (value)} की तुलना कैसे कर सकता हूं "?

उपयोग 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 माफ करना, अपडेट किया गया। – alecxe

+0

मेरे पास ऑब्जेक्ट ptor है: {ptor_: {controlFlow: [Function], –

+0

@ जेरेमी चाज़ेल यदि आप 'इनपुट' प्रिंट करने का प्रयास कर रहे हैं, तो सुनिश्चित करें - आप इसे प्राप्त करेंगे क्योंकि यह एक 'ElementFinder' उदाहरण है। आपका वांछित आउटपुट क्या है? इनपुट के मूल्य? धन्यवाद। – alecxe

संबंधित मुद्दे