Ich habe folgende Situation:Anzeige Standardwert, wenn nicht in ng-repeat findet
<div ng-repeat="field in model.Fields">
<div class="col-xs-2">
{{field.Code}}
</div>
<div class="col-xs-2">
{{field.Name}}
</div>
<div class="col-xs-2">
<div class="aaa" ng-repeat="(key, value) in model.FieldSemantics">
<span ng-click="">
<enum-name-display ng-if="field.Code == key" value="value" values="@Html.ValuesForEnum(typeof(FieldRoleEnum))"></enum-name-display>
</span>
</div>
</div>
</div>
model.Fields Array ist
model.FieldSemantics ist ein Objekt, in dem Schlüssel zum Code des Feldes gleich und Wert, der Enum-Wert entspricht.
Ich wollte den Wert von enum zeigen, wenn field.Code gleich Schlüssel ist. Es funktioniert gut, aber für einige Felder in Array gibt es kein gleiches (Schlüssel, Wert) Paar in model.FieldSemantics. Für diesen Fall möchte ich den Standardwert f.ex. Strich "-". Ich habe keine Ahnung, wie ich es lösen soll.
Beispiel json:
"Fields": [
{
"Code": "field1",
"Name": "Field 1",
},
{
"Code": "field2",
"Name": "Field 2",
},
{
"Code": "field3",
"Name": "Field 3",
},
{
"Code": "field4",
"Name": "Field 4",
},
{
"Code": "field5",
"Name": "Field 5",
},
]
"FieldSemantics": {
"field1": 0,
"field3": 1,
"field5": 2
},
Du meinst etw so: 'ng-if ="! (Field.Code == key) "'. Es funktioniert nicht richtig, da so viele Bindestriche erzeugt werden, wie es Elemente in model.FieldSemantics gibt. – user6341612
Der ng-if-Ausdruck könnte etwas abweichen, aber das Konzept ist korrekt. Wenn Sie JSON zu Ihrer Frage hinzufügen möchten, kann ich Ihnen den genauen Ausdruck geben. –
Ich habe das Beispiel JSON hinzugefügt, weil ich jetzt keinen Zugriff auf Ressourcen habe, aber gegeben JSON spiegelt die Situation wider. So wie Sie für Feld2 und Feld4 sehen können, gibt es keinen entsprechenden Schlüssel in FieldSemantics-Objekt. Also für diese Felder möchte ich Dash anzeigen. Für andere zeige ich den Wert entsprechend dem Enum-Wert an, aber das wird mit 'ng-if = "field.Code == key" 'gemacht – user6341612