加载Blazor Wasm时(即在加载屏幕上)如何显示从api获取的报价?

时间:2020-07-17 08:55:45

标签: blazor blazor-client-side blazor-webassembly asp.net-blazor

我想在blazor wasm应用程序加载时显示引号。如何访问此msg类。我已将脚本放入index.html标头标记中。但是无法访问它?

<script>
  fetch("https://localhost:44359/data/Quotes.json")
    .then(res => res.json())
    .then(data => console.log(data.quotes));

  document.querySelector("body").innerHTML = "hey";
</script>
</head>

<body>
  <app>
    <div class="loading-page">
      <div class="quotes">
        <div class="msg"></div>
        <div class="author"></div>
      </div>
      <div class="loader mt-5">
        <div class="loader-dot dot1"></div>
        <div class="loader-dot dot2"></div>
        <div class="loader-dot dot3"></div>
      </div>
    </div>
  </app>


  <script src="_framework/blazor.webassembly.js"></script>

  <script>
    navigator.serviceWorker.register("service-worker.js");
  </script>

</body>

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

这是您应该如何做:

<replaceregexp 
    match=" context=&quot;/producers/(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)?(?:(\d+)\.)?(\*|\d+)&quot;"
    replace=" context=&quot;/producers/${project.version}&quot;" 
    flags="g" 
    byline="true">
       <fileset dir="." includes="**/*.xml" />
    </replaceregexp>

在wwwroot文件夹中创建一个名为sample-data的文件夹,并在其中创建一个包含以下数据的json文件:

quotes.json

<body>
    <app><div id="message"></div></app>

    <div id="blazor-error-ui">
        An unhandled error has occurred.
        <a href="" class="reload">Reload</a>
        <a class="dismiss">?</a>
    </div>
    <script src="_framework/blazor.webassembly.js"></script>
    <script>
        (function () {
            var quote = document.getElementById("message");
            fetch("sample-data/quotes.json")
                .then(res => res.json())
                .then(data => quote.innerHTML = data[1].msg + "<br /><br />" + data[1].author);

         
        })();
    </script>
</body>

注意:您可以将所需的任何标记插入到app元素中,包括图像,文本滑块等,并进行您喜欢的任何操作。但是重要的是,所有代码都应位于立即函数,将其放置在样本中的同一位置。