Ako referenčné miestne JS moduly v Blazor komponenty?

0

Otázka

Na Dotnetconf pred dvoma týždňami počul som, že to je teraz možné zahrnúť lokálne súbory Javascript v Blazor komponentov. To znie veľmi zaujímavo. Myslím, že tento prístup je stále používať JSIniterop a odkaz na modul súbor.

ALE ako si odkaz JS súbor ??? Skúšal som všetky možné kreatívne varianty, ale zatiaľ bez úspechu.

Som prekvapený, Google všade, ale nájsť žiadne príručky alebo vzorku, ale na to. Všetky rady sú vítané.

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

Najlepšiu odpoveď

1

Môžete vytvoriť .js kódu súboru vedľa .britva.cs súbor a načítať súbor v režime runtime. Je to popísané tu. Tiež som zistil, prezentácia túto funkciu tu a github repo tu.

Povedzme, že máte ComponentA s ComponentA.razor, ComponentA.razor.cs a ComponentA.razor.js súbory Pages priečinok. Môžete načítať modul počas komponent je inicializácia tak ako:

[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 ak váš komponent je definované v component library projekt, potom sa budete musieť použiť inú cestu súboru. Napríklad ak váš projekt s názvom AppComponents potom je táto cesta by byť ./_content/AppComponents/ComponentA.razor.js.

2021-11-20 14:42:26

Sledoval som váš vzorky, ale ešte získať rovnaké výnimkou. Možno to nie je možné z vlastnú súčasť, v iné zložky, než stránky? Chyba: Microsoft.JSInterop.JSException: Zlyhalo dynamicky dovezené modul: localhost:5000/_content/: ProjectName/Components/Common/...
Jakob Lithner

V iných jazykoch

Táto stránka je v iných jazykoch

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