Function属性不是Polymer中的函数

时间:2018-05-10 04:30:19

标签: javascript html html5 polymer

我在我的项目中使用Polymer框架,我在其中声明属性中的函数回调并尝试从另一个函数调用它。但在访问它时我收到了一个错误:

  

未捕获的TypeError:this.callback不是函数

请看一下。

Polymer({
  is: "parent-dom",
  properties: {
    people: {
      type: String,
      value: "df"
    },
    item: {
      type: String,
      value: "asdf",
      notify: true
    },
    callback: {
      type: Object,
      value: function(index) {
        console.log("Inside  callback function");
      }
    },

  },
  showTargetColorDialog: function(e) {
    this.callback("sadf");
  }
});

1 个答案:

答案 0 :(得分:1)

请您提供有关您希望实现的内容的更多详细信息,因为将 Polymer属性指定为函数这不是很常见的情况吗?

因此,您可以在元素上声明公共方法,就像使用showTargetColorDialog一样,并且可以像以下一样调用它们:

document.querySelector('parent-dom').showTargetColorDialog();

但同样,它不是那种“聚合物方式”。

要回答原始问题,如果您确实需要将回调设置为Polymer属性(我仍然不确定原因),但您可以:

callback: {
  type: Object,
  value: function() {
    return function(index) {
        console.log("Inside callback function ", index);
    };
  }
},

然后您就可以致电this.callback('something');