Werte und Ausdrücke#
Viele MD-Attribute enthalten Ausdrücke. XML-Anführungszeichen begrenzen das Attribut, während innere Einzelanführungszeichen einen MD-String wörtlich bilden. Listen und Tabellen haben unterschiedliche Zugriffsmuster: $Items.{1} liest eine Listenposition; $ByID.{$Key} liest einen benannten Tabellenschlüssel.
<set_value name="$Label" exact="'Hello, X4'" />
<set_value name="$Count" exact="3" />
<set_value name="$Ready" exact="false" />
<set_value name="$Items" exact="[]" />
<set_value name="$ByID" exact="table[]" />Validierung des Anfrageformulars#
Das Beispiel überprüft die eingehende UI-Zuladung innerhalb des Handlers. Eine korrekte Listenlänge beweist keine Elementtypen. Validierung des Textes und des Switch-Wertes vor der Anwendung einer Einstellung.
<do_if value="typeof $Payload == datatype.list and $Payload.count == 2">
<set_value name="$Label" exact="$Payload.{1}" />
<set_value name="$Enabled" exact="$Payload.{2}" />
</do_if>Existenz und Anwendungsbereich#
not $Records? überprüft die variable Existenz. Objekte müssen zusätzlich .exists. Ein Stichwort wie Init.$Records explizit Kontext. False, eine leere Liste und eine fehlende Variable sind verschiedene Zustände; ersetzen Sie keine Inhaltsüberprüfung für Existenz.
Wählen Sie explizit variables Eigentum#
Nehmen Sie nicht an, $Value und this.$Value immer auf die gleiche Lagerung verweisen: $Value löst sich durch den Namensraum. Wählen Sie einen geeigneten namespace="this" z.B. lokale Handlerdaten; Shared State in einem explizit gewählten Kontext speichern.
Vergleichen Sie zwei aufeinanderfolgende Anfragen: Ändert sich das beabsichtigte Feld, und läuft die erste Anfrage in die zweite? MD-Bibliotheken für ein parametriertes wiederverwendbares Stichwort.