我如何在asp.net核心spa角度应用程序中实现谷歌地图,我已经包含脚本到我的index.cshtml但从角度访问它时出错.
import { Component } from '@angular/core'; declare var google: any; @Component({ selector: 'home',templateUrl: './home.component.html' }) export class HomeComponent { constructor() { var mapProp = { center: new google.maps.LatLng(51.508742,-0.120850),zoom: 5,mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("googleMap"),mapProp); } }
Index.html
@{ ViewData["Title"] = "Home Page"; } <app asp-prerender-module="ClientApp/dist/main-server">Loading...</app> <script src="https://maps.googleapis.com/maps/api/js?key=[YOUR-KEY]" async defer></script> <script src="~/dist/vendor.js" asp-append-version="true"></script> @section scripts { <script src="~/dist/main-client.js" asp-append-version="true"></script> }
处理请求时发生未处理的异常.
NodeInvocationException: Uncaught (in promise): ReferenceError: google
is not defined ReferenceError: google is not defined at new
HomeComponent (F:\yo\ClientApp\dist\main-server.js:16281:25)
解决方法
.cshtml
<app asp-prerender-module="ClientApp/dist/main-server" asp-prerender-data='@ViewData["token"]' >Loading...</app>//Storing <script src="~/dist/vendor.js" asp-append-version="true"></script> @section scripts { <script src="~/dist/main-client.js" asp-append-version="true"></script> }
boot.server.ts
setImmediate(() => { resolve({ html: state.renderToString(),globals: { tokenData: params.data } });
app.component.ts
declare var tokenData: any; @Component({..}) export class AppComponent implements OnInit{ ngOnInit() { let accesstoken = tokenData; localStorage.setItem('token',accesstoken); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。