我有以下dom-module,我正在尝试为其创建交互。
<dom-module is="bw-image-upload">
<template>
<vaadin-upload id="uploader"
target="{{ API_URL}}/images/upload"
method="POST"
max-files="1"
max-file-size="200000"
accept="image/*"
upload-success="uploadResponseHandler"
file-reject="errorHandler"
>
</vaadin-upload>
</template>
<script>
Polymer({
is: 'bw-image-upload',
properties: {
image: String,
notify: true
}
});
var uploader = document.querySelector('#uploader');
uploader.addEventListener('upload-before', function(event) {
console.log(event);
});
</script>
</dom-module>
我想通过它的ID选择vaadin-upload元素,但它返回null,我很困惑为什么它返回null。
如何在Polymer中选择这样的元素?
答案 0 :(得分:2)
如果元素具有id并静态添加到模板,则可以使用
var uploader = this.$.uploader;
获取对ID为uploader
的元素的引用。
如果元素位于<template is="dom-if">
,<template is="dom-repeate">
内或以其他方式动态创建,则不支持。
在这种情况下,您可以使用
var uploader = this.$$('#uploader');
this.$$(...)
提供完整的CSS选择器支持并返回第一个匹配元素,而this.$...
仅支持ID。