Jak odwoływać się do lokalnych modułów JS w składnikach Blazor?

0

Pytanie

Na Dotnetconf dwa tygodnie temu słyszałem, że teraz można włączać lokalne pliki Javascript w składniki Blazor. To brzmi bardzo ciekawie. Myślę, że podejście nadal jest w użyciu JSIniterop i link do pliku modułu.

ALE jak polecisz na plik JS ??? Próbowałem wszystkie możliwe twórcze możliwości, ale na razie bezskutecznie.

Jestem zaskoczony, że wszędzie google, ale na razie nie ma żadnych podręczników lub przykładów w tej sprawie. Wszystkie wskazówki będą ocenione i docenione.

blazor components interop javascript
2021-11-19 15:22:16
1

Najlepsza odpowiedź

1

Można utworzyć plik kodu .js obok pliku .razor.cs i pobrać plik ten jest w trakcie realizacji. Jest to opisane tutaj. Również znalazłem prezentację tej funkcji tutaj i repozytorium github tutaj.

Załóżmy, że masz ComponentA z ComponentA.razor, ComponentA.razor.cs i ComponentA.razor.js pliki w Pages katalog. Możesz pobrać ten moduł podczas inicjalizacji komponentu w następujący sposób:

[Inject]
public IJSRuntime JS { get; set; }

private IJSObjectReference module { get; set; }

protected override async Task OnInitializedAsync()
{
    module = await JS.InvokeAsync<IJSObjectReference>("import", "./Pages/ComponentA.razor.js");
}

Ale jeśli twój składnik określony w projekcie biblioteki komponentów, będziesz musiał użyć innego ścieżkę do pliku. Na przykład, jeśli twój projekt nazwany AppComponents wtedy ten sposób byłby ./_content/AppComponents/ComponentA.razor.js.

2021-11-20 14:42:26

Śledziłem twój przykład, ale i tak się ten sam wyjątek. Może być to niemożliwe z niestandardowego składnika w innym folderze, z wyjątkiem stron? Błąd: Microsoft.Wyjątek JsInterop.JSException: Nie udało się wyodrębnić dynamicznie zaimportowany moduł: host lokalny:5000/_content/Nazwa projektu/Komponenty/Ogólne/...
Jakob Lithner

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................