Ich versuche, mehrere Kontrollkästchen mit ng-Wiederholung von Array1 zu erstellen, und ich möchte das "checked" -Attribut (mit ng-checked) auf bestimmte abhängig davon, ob es eine Übereinstimmung gibt Array2.Vergleichen von zwei Arrays mit ng-repeat
Hier haben wir array1 in der Steuerung:
$scope.possibleConditions = ["condition1", "condition2", "condition3", "condition4"];
und dann array2 aus demselben Controller ist, sondern über JSON-API.
{
"treated" : false,
"data" : [{
"conditions" : ["condition1", "condition2"],
}]
}
Dies ist meine aktuelle ng-Repeat in der Vorlage ein:
<p ng-repeat="condition in possibleConditions">
<input type="checkbox" id="{{condition}}" />
<label for="{{condition}}">
{{condition}}
</label>
</p>
Der Wunsch ist das Attribut checked
mit dem Eingang, wenn, sagen wir, "condition1" in Array1 gefunden wird gelten, in "Bedingungen" von Array2.
Was ich versucht habe:
1: Ich habe versucht, mit einem Filter (die ich auf Stackoverflow gefunden) nach meinem Controller:
.filter('customArray', function($filter){
return function(list, arrayFilter, element){
if(arrayFilter){
return $filter("filter")(list, function(listItem){
return arrayFilter.indexOf(listItem[element]) != -1;
});
}
};
mit dem ng- wiederhole leicht geändert:
Aber das hat nicht funktioniert.
2: Ich habe versucht, eine andere ng-Wiederholung innerhalb der ng-Wiederholung, dann überprüfen Sie es gegen die erste eine Übereinstimmung.
Beispiel:
<p ng-repeat="conditions in possibleConditions">
<input ng-repeat="condition in profileData.data[0].conditions | filter{condition == conditions}" type="checkbox" id="{{condition}}" />
<label ng-repeat="condition in profileData.data[0].conditions | filter{condition == conditions}" for="{{condition}}">
{{condition}}
</label>
</p>
Hoffentlich kann jemand helfen/Punkt einige Hinweise. Danke.
Dies funktionierte PERFEKT! Vielen Dank für Ihre schnelle Antwort. Ich werde deine Antwort akzeptieren. – Jonathan
Ich bin froh, dass es nützlich war. – dfsq