如何通过ember-cli 2.6.2使用ember-leaflet?

时间:2019-05-15 06:17:40

标签: ember.js leaflet ember-data

因此,我下载了名为ember-leaflet的插件https://miguelcobain.github.io/ember-leaflet/docs/container。我正在使用的ember-cli版本为2.6.2。这是我的代码

  <LeafletMap lat=lat lng=lng zoom=zoom as |layers|>
    <layers.tile url="https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png"/>
  </LeafletMap>

控制台上显示的错误是ember.debug.js:2925 Uncaught DOMException: Failed to execute 'setAttribute' on 'Element': '|layers|' is not a valid attribute name.

任何回应都值得赞赏

1 个答案:

答案 0 :(得分:1)

好的,因此,更仔细地研究您的问题,您发布的html不正确。应该是:

<LeafletMap @lat={{lat}} @lng={{lng}} @zoom={{zoom}} as |layers|>
  <layers.tile @url="https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png"/>
</LeafletMap>

在尖括号调用中,必须使用@符号将参数传递给示例中未使用的组件。

但是,让我们往后走一步。 3.4中发布了尖括号组件调用。如果您在3.4之前并希望使用尖括号调用,则必须安装polyfill可用。归根结底,尖括号调用主要是语法上的差异(尽管不要误会我,但捆绑了一些改进)。尽管使用了该语法的传单文档,也不必在旧的ember应用中使用尖括号调用。我在生产中有一个3.8余烬应用程序,因为没有时间进行转换,所以不使用单个尖括号。

您可以轻松地使用此语法,而不必费心尝试使用polyfill并等待使用尖括号语法,直到进入3.4 +。

{{#leaflet-map lat=lat lng=lng zoom=zoom as |layers|}}
  {{layers.tile url="https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png"}}
{{/leaflet-map}}

余烬指南具有conversion guide,您可以将其用作参考点。学习起来应该不难。我编写了一个Objective-C应用程序维护程序,并且在查看指南,stackoverflow等时经常需要将Swift语法转换为Objective C语法。这仅仅是维护和使用遗留问题的本质:)