Blazor kann alles, was in .NET geht, aber der Browser kann einiges, das .NET nicht kann: die Zwischenablage, den Fokus, ein <dialog> öffnen. Dafür gibt es JavaScript-Interop, und dafür gibt es eine Reihe von Fehlern, die man nur macht, wenn man sie nicht kennt: ein Aufruf beim Vorrendern, ein Modul, das nie freigegeben wird, eine Referenz auf .NET, die für immer lebt. Diese Lektion baut die Zwischenablage und den Fokus der Kundenakte als TypeScript-Modul und sieht dabei auf Lebensdauer und Fehler.

Wo die Kladde steht

Aus K2 0611 kennen Sie ein Modul mit focusEntry, die Referenz IJSObjectReference, OnAfterRenderAsync und DisposeAsync mit JSDisconnectedException. Hier geht es darum, wie das in der Breite aussieht: Ein Modul Scripts/kladde-interop.ts in Kladde.Web mit drei Aufgaben (kopieren, fokussieren, auf Einfügen hören) und eine Klasse KladdeInterop, die es kapselt. Die interaktive Kundenakte aus W8.2.2 benutzt es: Nach „Adresse hinzufügen“ bekommt die neue Zeile den Fokus, „E-Mail-Adresse kopieren“ schreibt in die Zwischenablage, und eine eingefügte Adresszeile („Hauptstraße 1, 53111 Bonn“) wird auf die drei Felder verteilt. Behalten Sie Ihre Namen und übertragen Sie die Schritte.