dom-change
объект события e в Polymer.dom(e).localTarget
дает мне <template is="dom-if"
как следует. Но как мне получить доступ к ребенку <div id="uploadedImage1"
? firstChild
и firstElementChild
- null.Как получить дочерний элемент из элемента шаблона?
<template is="dom-if" if="[[uploadedImage1]]">
<div id="uploadedImage1" class="row-image horizontal layout">
foo
</div>
</template>
Я подумал, что мне нужно сделать еще один запрос от объекта localTarget, но не успех:
this.$['images-container'].addEventListener('dom-change', (e)=> {
var bob = Polymer.dom(e).localTarget;
var sue = Polymer.dom(bob).querySelector('div')
console.log(sue);
});
Я также попытался это ни к успеху:
this.$['images-container'].addEventListener('dom-change', (e)=> {
var bob = Polymer.dom(e).localTarget;
var sue = this.queryEffectiveChildren(bob);
console.log(sue);
});
this.$['images-container'].addEventListener('dom-change', (e)=> {
var bob = Polymer.dom(e).localTarget;
var sue = bob.getEffectiveChildNodes();
console.log(sue);
});
}
От children length documentation example, даже Polymer.dom(this).children.length
возвращается 0:
<dom-module id="image-uploader">
<template>
<style include="iron-flex iron-flex-factors iron-flex-alignment">
<div id="images-container" class="horizontal layout center wrap">
<div hidden="[[uploadedImage1]]" class="layout vertical center-center">
<div class="row-image horizontal layout">
<input
type="file"
name="file"
data-uploaded="uploadedImage1"
id="image1"
accept="image/jpeg"
class="inputfile" />
<label
for="image1"
id="image1"
class="image-show horizontal layout center center-justified">
<iron-icon icon="add" prefix></iron-icon>
Upload Image
</label>
</div>
<i>*Main Image</i>
</div>
<template is="dom-if" id="foo" if="[[uploadedImage1]]">
<div id="uploadedImage1">
foo
</div>
</template>
</div>
</template>
<script>
Polymer({
is: 'image-uploader',
properties: {
uploadedImage1: {
type: Boolean,
value: false
}
},
ready: function(e) {
console.log(Polymer.dom(this).children.length);
Я думаю, на это можно ответить здесь: http://stackoverflow.com/questions/28593494/accessing-a-div-inside-of-a-polymer-element-template –
Спасибо, но это не сработает меня. Он будет внутри 'dom-repeat', поэтому класс/id не будет работать. Поэтому я всегда буду захватывать первого ребенка из «localTarget». Но 'localTarget' показывает null для детей, где у него есть дети. – dman