ポリマー1.7スタンピングテンプレート非同期?競争状態の問題
テンプレートを非同期操作にスタンプしていますか?それはI/Oではないので、なぜそれがどうなるのかわかりません。ただし、this.$$('#uploadedImage1')
が未定義の競合状態があります。 template is="dom-if"
の代わりに<div hidden="[[foo]]">
を使用すると動作しますので、これが競合状態であることがわかります。
<template is="dom-if" if="[[uploadedImage1]]">
<div id="uploadedImage1" class="row-image horizontal layout">
</div>
</template>
...
ready: function(e) {
function readURL(e) {
var el = e.target.id
var uploadedID = e.target.dataset.uploaded;
var file = Polymer.dom(e).localTarget.files[0];
var reader = new FileReader();
reader.onloadend =()=> {
this[uploadedID] = true;
//RACE CONDITION HERE
this.$$('#uploadedImage1').style.backgroundImage = `url(${reader.result})`;
}
reader.readAsDataURL(file);
}
this.$['images-container'].addEventListener('change', readURL.bind(this), false)
}
大変感謝しています。 – dman