我正在尝试将文件上传与 Dart & Polymer 结合使用。考虑以下文件:
我的上传.html
<polymer-element name="my-upload">
<template>
<style></style>
<input type="file" id="uploader" bind-files="{{files}}" on-change="{{uploadFiles}}" multiple>
</template>
<script type="application/dart" src="my-upload.dart"></script>
</polymer-element>
我的上传.dart
@CustomTag('my-upload')
class MyUpload extends PolymerElement {
@observable FileList files;
MyUpload.created() : super.created();
void uploadFiles(event, details, target) {
print(files);
}
}
uploadFiles 中的打印语句始终打印 null。看来,fileList 没有绑定到可观察对象。有没有办法解决这个问题?我必须使用绑定文件以外的其他语句吗?
当然,有一种解决方法,但我认为它没有抓住重点:
我的上传.dart
@CustomTag('my-upload')
class MyUpload extends PolymerElement {
FileUploadInputElement uploader;
MyUpload.created() : super.created() {
uploader = $['uploader'];
}
void uploadFiles(event, details, target) {
print(uploader.files);
}
}
有任何想法吗?