如何在观测器函数中访问聚合物特性
How to access polymer properties in observer function
当我试图将"progressbar.js"包装在聚合物元素中时,我无法访问circlepop。
var startColor = '#FC5B3F';
var endColor = '#6FD57F';
Polymer({
is: "home-view",
properties: {
value: {
type: String,
observer: '_valueChanged'
},
circleProp: {
type: Object,
notify: true,
reflectToAttribute: true
}
},
ready: function() {
var element = this.$$('#circleValue');
this.circleProp = new ProgressBar.Circle(element, {
color: startColor,
trailColor: '#eee',
trailWidth: 1,
duration: 2000,
easing: 'easeInOut',
strokeWidth: 5,
text: {
value: '0'
},
// Set default step function for all animate calls
step: function(state, circle) {
circle.path.setAttribute('stroke', state.color);
circle.setText((circle.value() * 100).toFixed(0));
}
});
this.circleProp.animate(0.3, {
from: {color: startColor},
to: {color: endColor}
});
},
attach : function() {
if (this.circleProp) {
this.circleProp.animate(this.value, {
from: {color: startColor},
to: {color: endColor}
});
}
},
_valueChanged : function(oldValue, newValue) {
if (this.circleProp) {
this.circleProp.animate(newValue, {
from: {color: startColor},
to: {color: endColor}
});
}
}
});
如何访问circleProp以便制作动画。或者如何访问_valueChanged中的对象?只能访问此元素的DOM。
我认为您的问题是circleProp
属性上的reflectToAttribute。你为什么这么做?Polymer正试图将其序列化为dom中元素的属性。
否则访问this.circleProp
将工作
_valueChanged在准备好之前被明确调用。尝试一个复杂的观察器
observers: ['_valueCahnged(value)']
这将防止观测值未定义。写入属性时也使用
this.set('circleProp', newValue)
否则,Polymer不会注意到发生了变化。在_valueCahnged观察器中,您可以通过此访问所有属性
相关文章:
- 如何从不同的元素访问聚合物元素中的属性
- 聚合物 - 访问自定义元素内的 DOM 输入元素
- 聚合物数据绑定:如何访问嵌套模板中的数据
- 使用jquery访问聚合物元素变量
- 聚合物数据绑定铁 AJAX 并在控制台中访问获取的 JSON
- 无法访问函数内的聚合物属性
- 聚合物硒测试访问子元素数据
- 聚合物,访问自定义元素/命名空间问题
- 访问聚合物元素中<内容>的内容
- 是否可以从另一个元素访问元素函数?聚合物1.0
- 聚合物1.x:访问'选择'铁清单中的项目
- 访问聚合物动态元素
- 如何在观测器函数中访问聚合物特性
- 聚合物:如何访问'内容'标签
- 使用流星访问阴影DOM聚合物元素
- 我如何访问一个功能通过事件发送器在聚合物
- 访问一个嵌套在一个带有聚合物的对象中的数组中的一个对象的值
- 不能用Javascript访问聚合物自定义元素中的Canvas元素
- 访问聚合物dom重复模板中的元素
- 聚合物:访问聚合物元素对象