【问题标题】:Can't access properties polymer in function无法在功能中访问属性聚合物
【发布时间】:2016-02-24 16:11:03
【问题描述】:

当我在对象 Polymer 的方法中时,我无法修改我的属性。我不知道将哪个参数传递给函数。

<google-map-marker id="userMarker" latitude="{{locOrigin.lat}}" longitude="{{locOrigin.lng}}"></google-map-marker>

properties: {
        locOrigin: {
            type: Object,
            value: {}
        }
    },

ready: function(e) {
        if(navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(this.maPosition(), this.erreurPosition);               
        } else {
            alert("Ce navigateur ne supporte pas la géolocalisation");
        }
    },

maPosition: function (position, locOrigin) {
        locOrigin.lat  = position.coords.latitude;//locOrigin undifined
    },

【问题讨论】:

  • 来自 API google: navigator.geolocation.getCurrentPosition(function(position) 但是当我在这里传递位置时 this.maPosition(position) 我有一个“位置未定义”
  • 有人知道如何访问方法中的属性来修改它们吗?

标签: methods properties arguments polymer


【解决方案1】:

为了能够正确地修改您的对象,请使用 set 方法,如下所示:

maPosition: function (position) {
  this.set('locOrigin.lat', position.coords.latitude);
}

顺便说一句,你在什么情况下打电话给maPosition? (不需要locOrigin 参数)

【讨论】:

  • maPosition 获取用户位置。所以我想在属性 locOrigin 中添加这个位置,以便能够将它放在元素之外。
  • 它也适用于 notifyPath('locOrigin.lat', latUser);但我认为 notifyPath 触发事件或调用观察者。但没有任何附加内容...
  • 我还有 this.set 不是函数。当我调用 document.querySelector('carte-lieux').notifyPath/set 时它正在工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
相关资源
最近更新 更多