Jeder Eintrag auf dieser Seite hat dieselbe Form: Der Build ist grün, das Audit ist sauber, die Konsole schweigt, und der Bildschirm ist leer oder zeigt nicht das, was Sie gemeint haben. Der Compiler kann diese Fehler nicht sehen, weil jeder davon ein gültiges Programm ist, das eben eine andere Komponente beschreibt. Suchen Sie die Überschrift, die klingt wie das, was Sie sehen; darunter stehen Ursache und Behebung.
Der Name in view.tree und der Name der Methode in der Klasse unterscheiden sich, meistens in der Groß- und Kleinschreibung: exchange_form im Baum, exchangeForm in der Klasse. Das sind zwei Eigenschaften. Die der Klasse wird nie aufgerufen, die des Baums behält ihren Standardwert, und nichts meldet es.Namen sind überall snake_case und müssen Buchstabe für Buchstabe übereinstimmen. Prüfen Sie nach dem Bearbeiten einer .view.ts, ob jede Überschreibung noch eine existierende Eigenschaft benennt; die generierte -view.tree/*.view.tree.d.ts neben dem Baum ist die Liste zum Abgleich.
Das sind Eigenschaften von $mol_string: hint für den Placeholder, enabled für den deaktivierten Zustand, type für den Eingabetyp. Setzen Sie sie dort, wo das Eingabefeld verwendet wird:1<= Password $mol_string2 hint \Password3 type \password4 enabled <= can_edit true5 value?<=> password?\Jede andere Eigenschaft jeder anderen Komponente findet sich auf demselben Weg: Öffnen Sie ihre .view.tree, wie Wie man die Quellen liest zeigt.attr* ist für echte DOM-Attribute da, die die Komponente nicht ohnehin schon abbildet, und hat eine eigene Falle: Ein Block ohne ^ als erste Zeile ersetzt das gesamte Attribut-Wörterbuch der Basis, sodass ein so geschriebenes $mol_buttondisabled, role und tabindex verliert. Beginnen Sie den Block mit ^, um zu erben, und ergänzen Sie dann Ihre Schlüssel:1attr *2^3 data_kind \primary
Eine Zeichenkette wurde übergeben, wo eine Liste erwartet wird, und die Zeichenkette wurde Zeichen für Zeichen ausgebreitet. Zeichenketten beginnen mit \, Listen mit /. Der übliche Fall ist sub, das eine Liste ist:1sub /<= label \Hello
Eine Überschreibung ist aus der .view.ts herausgefallen. Der Baum gibt jeder Eigenschaft einen Standardwert, also ist TypeScript zufrieden, wenn die Klasse rows() nicht mehr neu definiert, und die Liste rendert leer. Tests, die nur das Modell prüfen, bleiben grün, weil das Modell in Ordnung ist.Schreiben Sie für jede Überschreibung, von der der Bildschirm abhängt, einen Test, der liest, was der Benutzer sieht: rows(), sub(), title() der Sub-Views oder das DOM. Testen zeigt beides.