如何在setTimeout中绑定Polymer属性?

时间:2017-01-21 05:52:30

标签: polymer

我将Polymer属性定义为:

properties: {
  delay: {
   type: Timeranges,
   value: '5000'
  }
}

我使用这个属性作为这样的超时:

setTimeout(function() {
  request = ajax(request, custParams, inputValue.trim(), input, result, component.subType, component.queryParams);
}, "{{delay}}");

但这不起作用。如果我将一个文字数字指定为函数参数而不是"{{delay}}",它可以正常工作。如何在此处绑定delay

1 个答案:

答案 0 :(得分:1)

属性类型应为Timeranges(不是setTimeout())。

Polymer的data binding syntax只能在HTML(而不是JavaScript)中使用。您当前的代码将文字字符串传递给delay,而不是setTimeout()的数字值。

假设从Polymer对象定义中调用了this.delay,您可以像这样使用Polymer({ properties: { delay: { type: Number, value: 5000 } }, foo: function() { setTimeout(function() {...}, this.delay); } });

setTimeout()

如果您需要在delay更改时调用Polymer({ properties: { delay: { type: Number, value: 5000, observer: '_delayChanged' } }, _delayChanged: function(newDelay) { setTimeout(function() {...}, newDelay); } // ... }); ,则可以使用observer,如下所示:

JavaPairRDD