首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Marko.js和Lasso.js使用Google Maps并将全局变量链接到其他模板

如何通过Marko.js和Lasso.js使用Google Maps并将全局变量链接到其他模板
EN

Stack Overflow用户
提问于 2019-04-24 09:26:11
回答 1查看 199关注 0票数 0

我在一个使用Marko.js和Lasso.js构建.js和.scss代码的项目中。我可以通过<script>标签成功地与Google Maps API交互。我希望将纬度和经度值发送到其他模板,我该如何做?

我尝试在文档中使用this指南,但它不起作用。我尝试在<script>标记中使用内联js引用index.marko中的全局变量。

我被迫使用内联js的原因与使用<script async defer src='https://maps.googleapis.com/maps/api/...&callback=initMap'/>的Lasso.js和Google Maps有关,它在另一个<script>标记中有一个对内联js函数initMap()的回调。每次我尝试将内联js代码移动到单独的.js文件时,都会像添加其他代码一样将它添加到browser.json文件中。它抛出一个错误,指出没有加载initMap函数。

好的,这是我的根目录

代码语言:javascript
复制
src
|_ pages
   |_ home
      |_ index.marko
      |_ index.js
src
|_ components
   |_ location-search
      |_ index.marko

这是location-search/index.marko:

代码语言:javascript
复制
div.search-container.location-search
  div.input-field
    p.input-label -- Search
    input.controls#pac-input type="text" placeholder="Search Box"
  div#map

<script>
  functioninitMap() {
    // Do Google Maps stuff and obtain an array of lat lng values.
  }
</script>
<script async defer src="https://maps.googleapis.com/maps/api/...&callback=initMap"/>

这是home/index.marko

代码语言:javascript
复制
lasso-page package-path="./browser.json"
<!DOCTYPE html>
html lang="en"
  head
    meta charset="UTF-8"
    meta name="viewport" content="initial-scale=1.0"
    meta http-equiv="X-UA-Compatible" content="ie=edge"
    title -- App
    lasso-head
  body
    location-search
  browser-refresh
  lasso-body

我希望能够从另一个页面访问在components/location-search/index.marko.中获得的纬度和经度值的数组,Marko是一个很好的工具,它只需要更多的文档。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-04-25 00:38:55

我被迫使用内联js的原因与使用https://maps.googleapis.com/maps/api/...&callback=initMap'/>的Lasso.js和Google Maps有关,它在另一个标记中有一个对内联js函数initMap()的回调。

我推荐使用这个包:https://www.npmjs.com/package/load-google-maps-api。它允许您加载google地图api并访问它,而无需创建全局处理程序。

代码语言:javascript
复制
import loadGoogleMapsApi from "load-google-maps-api";

class {
  onMount() {
    loadGoogleMapsApi.then((googleMaps) => {
      this.map = new googleMaps.Map(this.getEl('map'), {
        center: {
          lat: 40.7484405,
          lng: -73.9944191
        },
        zoom: 12
      });
    });
  }
}

div.search-container.location-search
  div.input-field
    p.input-label -- Search
    input.controls#pac-input type="text" placeholder="Search Box"
  div key="map"

我试着在文档中使用这个指南,但是它不起作用。我试图引用标签内带有内联js的index.marko中的全局变量。

就这一点而言,本文中讨论的全局变量并不是全局变量,就像window是全局变量一样。它们更像“渲染全局变量”,只在模板中可用,但在渲染时对所有全局变量都可用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55821141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档