Aspnetcore: [Blazor] Direkte DOM-Manipulation mit C#

Erstellt am 22. Jan. 2019  ·  3Kommentare  ·  Quelle: dotnet/aspnetcore

Bezieht sich Ihre Funktionsanfrage auf ein Problem? Bitte beschreiben.

Wird es möglich sein, DOM direkt aus C#-Code zu manipulieren, ohne Javascript-Funktionen aufzurufen?

Ich habe über solche Basics nachgedacht

var elem = document.getElementById("123");

elem.AddOrUpdateStyle("background-color", "red");
elem.AddOrUpdateStyle("height", "150px");
elem.Remove("height");

var boxes = document.getElementsByClassName("box");

foreach (var box in boxes)
{
   if (box.Classes.Contains("hidden"))
   {
      box.AddOrUpdateStyle("display", "none");
      continue;
   }

   box.Value = "";
   box.SetAttribute("placeholder", "Type here...");
}

Ist es überhaupt erreichbar?

area-blazor

Hilfreichster Kommentar

Ich denke, dieses Thema sollte wieder aufgegriffen werden. Razor-Komponenten sollten diese Fähigkeit haben, auch wenn sie mit JS-Interop unter der Haube gemacht werden. ElementRef sollte erweitert werden, um die meisten grundlegenden JS-Funktionen zu unterstützen.

Alle 3 Kommentare

Die DOM-Manipulation wird derzeit nicht von der Webassembly unterstützt (https://github.com/WebAssembly/proposals/issues/16 , https://github.com/WebAssembly/design/blob/master/Web.md), also hat sie gewonnen werde bald nicht von mono wasm unterstützt werden. Sie können dies nur mit dem aktuellen Status von Blazor tun: benutzerdefinierte Komponente und JS-Interop.

Ich denke, dieses Thema sollte wieder aufgegriffen werden. Razor-Komponenten sollten diese Fähigkeit haben, auch wenn sie mit JS-Interop unter der Haube gemacht werden. ElementRef sollte erweitert werden, um die meisten grundlegenden JS-Funktionen zu unterstützen.

Der direkte DOM-Zugang wird für mich der Grund sein, Blazor auszuprobieren.
Dies ist für den Durchbruch von Blazor zwingend erforderlich.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen