Aspnetcore: [Blazor] Manipulación DOM directa con C #

Creado en 22 ene. 2019  ·  3Comentarios  ·  Fuente: dotnet/aspnetcore

¿Su solicitud de función está relacionada con un problema? Por favor describa.

¿Será posible manipular DOM desde el código C # directamente sin invocar funciones de JavaScript?

Pensé en conceptos básicos como ese

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...");
}

¿Es incluso alcanzable?

area-blazor

Comentario más útil

Creo que este tema debería reabrirse. Los componentes de Razor deberían tener esta capacidad, incluso si se hace con interoperabilidad JS bajo el capó. ElementRef debería ampliarse para admitir la mayoría de las funciones básicas de JS.

Todos 3 comentarios

La manipulación DOM actualmente no es compatible con el ensamblaje web (https://github.com/WebAssembly/proposals/issues/16, https://github.com/WebAssembly/design/blob/master/Web.md), por lo que ganó Pronto será apoyado por mono wasm. Puede hacerlo solo utilizando el estado actual de Blazor: componente personalizado e interoperabilidad JS.

Creo que este tema debería reabrirse. Los componentes de Razor deberían tener esta capacidad, incluso si se hace con interoperabilidad JS bajo el capó. ElementRef debería ampliarse para admitir la mayoría de las funciones básicas de JS.

El acceso directo al DOM será la razón por la que probaré Blazor.
Esto es obligatorio para el avance de Blazor.

¿Fue útil esta página
0 / 5 - 0 calificaciones