Polymer “当”时如何接触聚合物;这";变成「;那";

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

我正在尝试将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的访问

<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));