У меня есть приложение Blazor с компонентом бритвы в качестве модального открытия
Откройте модал.Razor
<ModalScan @ref="ModalScan"><p>Scanner</p></ModalScan>
<button class="btn btn-primary" @onclick="ScanStart">Start Scann</button>
@code{
ModalScan ModalScan;
void ScanStart()
{
ModalScan.Show();
}
}
Модал.Razor
@if (_Show)
{
<div class="modal fade show" style="display: block;">
<div class="modal-dialog" style="width: 90%;" @>
<div id="modal_fullscreen" class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Scanner</h5>
<button type="button" class="close" data-dismiss="modal" @onclick="Show">×</button>
</div>
<div class="modal-body">
<form>
<div class="container">
<div class="form-row">
<div id="loadingMessage">Unable to access video stream </div>
<canvas style="width: 100%;" id="canvas" hidden></canvas>
<div id="output" hidden>
<div id="outputMessage">No detected.</div>
<div hidden>
<input type="text" id="outputData" value="@CurrentValue"
@onchange="@((ChangeEventArgs __e) => CurrentValue = __e.Value.ToString())" />
</div>
</div>
</div>
<div class="form-row">
<button type="button" class="btn btn-dark" @onclick="ScanResume">Scan</button>
</div>
</div>
</form>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal" @onclick="Show">Abort</button>
<button type="button" class="btn btn-primary" @onclick="saveChanges">Ok</button>
</div>
</div>
</div>
</div>
</div>
<div class="modal-backdrop fade show"></div>
}
После этот modal.razor загружен, я начну js -Script. Я могу начать только с кнопки, тогда DOM не загружается, когда я вызываю Javascript на пустом Show ().
На странице бритвы работает с:
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await JSRuntime.InvokeVoidAsync("startScanner");
}
}
public async void Show()
{
_Show = !_Show;
if (_Show)
{
}
}
но не на модале. Есть ли какое-либо событие, чтобы проверить, завершена ли модальная загрузка из бритвенных компонентов в моем модале?