Polymer “当”时如何接触聚合物;这";变成「;那";
我正在尝试将dropzone.js和cloudinary集成到Polymer 1.0中。它确实有效,但我遇到了一个障碍,那就是如何将Cloudinary生成的动态URL发送回Polymer,以便将该URL写入Firebase。我在一个函数中监听dropzone事件,目的是使用iron信号向不同的web组件发送信号。“this”现在的范围是dropzone.js,而不是Polymer …导致“未捕获类型错误:this.fire不是函数” 下面是代码,我正在尝试根据dropzone.js“success”事件启动iron信号,该事件提供对新图像URL的访问Polymer “当”时如何接触聚合物;这";变成「;那";,polymer,polymer-1.0,Polymer,Polymer 1.0,我正在尝试将dropzone.js和cloudinary集成到Polymer 1.0中。它确实有效,但我遇到了一个障碍,那就是如何将Cloudinary生成的动态URL发送回Polymer,以便将该URL写入Firebase。我在一个函数中监听dropzone事件,目的是使用iron信号向不同的web组件发送信号。“this”现在的范围是dropzone.js,而不是Polymer …导致“未捕获类型错误:this.fire不是函数” 下面是代码,我正在尝试根据dropzone.js“succe
<link rel="stylesheet" href="../../../bower_components/dropzone/dist/min/dropzone.min.css">
<dom-module id="my-dropzone">
<style>
:host {
display: block;
}
div#my-dropzone-area {
max-width=300px;
height=300px;
border: 4px dashed blue;
}
</style>
<template>
<paper-button on-tap="startTheMessage">Test Fire!</paper-button>
<iron-signals on-iron-signal-hello="passTheMessage">
<div class="dropzone" id="my-dropzone-area">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'my-dropzone',
ready: function() {
// access a local DOM element by ID using this.$
Dropzone.options.myDropzoneArea = {
paramName: 'file', // The name that will be used to transfer the file
maxFilesize: 10, // MB
uploadMultiple: false,
acceptedFiles: '.jpg,.png,.jpeg,.gif',
parallelUploads: 6,
addRemoveLinks: true,
url: 'https://api.cloudinary.com/v1_1/remarkable-ky/image/upload',
init: function() {
this.on('addedfile', function(file) {
console.log('Added file.');
console.log(file);
});
this.on('sending', function(file, xhr, formData) {
console.log('Sending file.');
formData.append('api_key', 0000000000000);
formData.append('timestamp', Date.now() / 1000);
formData.append('upload_preset', 'where-ky');
});
this.on('success', function(file, response) {
var baseURL = 'http://res.cloudinary.com/remarkable-ky/image/upload/';
var url = baseURL.concat(response.public_id);
console.log('Cloudinary URL: ', url);
this.fire('iron-signal', {
name: 'hello',
data: null
});
});
}
};
},
startTheMessage: function() {
this.fire('iron-signal', {
name: 'hello',
data: null
});
},
passTheMessage: function() {
alert("got it");
},
properties: {},
});
})();
</script>
<script src="../../../bower_components/dropzone/dist/min/dropzone.min.js"></script>
:主持人{
显示:块;
}
div#我的dropzone区域{
最大宽度=300px;
高度=300px;
边框:4px蓝色虚线;
}
试射!
(功能(){
聚合物({
是‘我的dropzone’,
就绪:函数(){
//使用此命令通过ID访问本地DOM元素$
Dropzone.options.myDropzoneArea={
paramName:'文件',//将用于传输文件的名称
最大文件大小:10,//MB
uploadMultiple:false,
接受的文件:'.jpg、.png、.jpeg、.gif',
并行上传:6,
addRemoveLinks:是的,
网址:'https://api.cloudinary.com/v1_1/remarkable-ky/image/upload',
init:function(){
this.on('addedfile',函数(文件){
log('Added file');
console.log(文件);
});
this.on('sending',函数(文件、xhr、formData){
log('发送文件');
append('api_key',0000000000000);
append('timestamp',Date.now()/1000);
append('upload_preset','where ky');
});
this.on('success',函数(文件,响应){
var baseURL=http://res.cloudinary.com/remarkable-ky/image/upload/';
var url=baseURL.concat(response.public\u id);
log('Cloudinary URL:',URL);
这是火灾(“铁信号”{
姓名:'你好',
数据:空
});
});
}
};
},
startTheMessage:function(){
这是火灾(“铁信号”{
姓名:'你好',
数据:空
});
},
passTheMessage:function(){
警惕(“明白了”);
},
属性:{},
});
})();
您可以使用.bind()
函数将其传递到函数中
this.on('success', function(file, response) {
var baseURL = 'http://res.cloudinary.com/remarkable-ky/image/upload/';
var url = baseURL.concat(response.public_id);
console.log('Cloudinary URL: ', url);
this.fire('iron-signal', {
name: 'hello',
data: null
});
}.bind(this));