微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net core 2.0 spa角谷歌地图

我如何在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 举报,一经查实,本站将立刻删除。

相关推荐