似乎在通過至少2層getter使用single template時,綁定在基礎值更改時不再更新。奇怪的是,這似乎使用iterative templates時,而不是工作。聚合物單個模板實例不更新
這是一個有點難以解釋,我不是100%肯定這就是爲什麼綁定失敗所以這裏是一個最小(ISH)的例子來說明這個道理:
<polymer-element name="test-binding">
<template>
<template bind="{{ getterMap }}">
<span>{{ name }}</span>
</template>
</template>
<script>
(function(){
Polymer('test-binding', {
ready: function(){
var getterMap = {};
Object.defineProperty(this, 'getterMap', {
get: function(){ return getterMap; },
set: function(newValue){ getterMap = newValue; }
});
var name = 'foo';
Object.defineProperty(getterMap, 'name', {
get: function(){ return name; },
set: function(newValue){ name = newValue; }
});
setInterval(function(){
this.getterMap.name = 'foo '+Math.random();
}.bind(this), 2000);
}
});
})();
</script>
</polymer-element>
而這伴隨而來的jsfiddle用它。
有一種方法可以通過訪問器強制綁定更新,請參閱我在此聚合物[issue](https://github.com/Polymer/polymer/issues/277)中的評論。你介意相應地更新你的答案嗎? – Renaud 2015-02-12 12:11:16
謝謝你! – 2015-02-16 19:16:53