Как внедрить файлы css / js из библиотеки классов Blazor Razor в ASP. NET Core Blazor Project - PullRequest
0 голосов
/ 09 января 2020

Обычный процесс импорта файлов css / js из библиотеки в основной проект - это ссылка на них

<script src="_content/RazorLib1/hello.js"></script>

Но есть некоторые библиотеки Blazor, например Dev Express .Blazor и - это , которые могут вставлять свои файлы css / js без явного их в основном проекте. Для этого необходимо вызвать функции services.AddMyLibrary () и / или services.UseMyLibrary ()

Как это возможно? Я заглянул внутрь библиотеки Toolbelt.Blazor.LoadingBar, но не нашел, как он достиг такого поведения.

Ответы [ 2 ]

2 голосов
/ 10 января 2020

сделал сообщение для этого (немецкий) https://blog.ppedv.de/post/Razor-Classlibrary-JavaScript-einbinden

0 голосов
/ 10 января 2020

Я решил это благодаря блогу HannesPreishuber . После его публикации я предлагаю изменить код js, вызываемый внутри jsRuntime.InvokeVoidAsyn c с помощью

(function() {
   let scripts = document.getElementsByTagName("script");
   let exists = false;
   let index = 0;

   while(index < scripts.length && !exists){
       exists = scripts[index].src.endsWith('_content/RazorClassLibrary1/exampleJsInterop.js');
       index++;
   }

   if(!exists) {
       document.body.appendChild(
           Object.assign (
               document.createElement ('script'), {
                   src: '_content/RazorClassLibrary1/exampleJsInterop.js',
                   type: 'text/javascript'
               }));
       }
})()

, поэтому библиотека js будет добавлена ​​один раз.

...