1

我正在尝试将Dropbox 选择器集成到我的ember 应用程序中。这是dropbox生成的代码段。

<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="XXXXXXXXXXX"></script>

<input type="dropbox-chooser" name="selected-file" id="db-chooser"/>
<script type="text/javascript">
    document.getElementById("db-chooser").addEventListener("DbxChooserSuccess",
        function(e) {
            alert("Here's the chosen file: " + e.files[0].link)
        }, false);
</script>

这就是我尝试在 ember 中实现它的方式。

包含<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="XXXXXXXXXXX"></script>在应用程序布局文件中。

window.App = Ember.Application.create({
  rootElement: '#ember-app',

  customEvents: {
    DbxChooserSuccess: "DbxChooserSuccess"
  },

)};

App.TestView = Em.View.extend({
  templateName: "test_view",

  tagName: "li",

  testAction: function(e) {
    alert("DbxChooserSuccess event triggered");

  }

});

//test_view.js.hjs
<input type="dropbox-chooser" name="selected-file" id="db-chooser" {{action "testAction" on="DbxChooserSuccess" target="view"}}/>

这不起作用。我的问题是我们如何将自定义事件侦听器添加到ember中的 html元素?

4

1 回答 1

1

直接通过 javascript 使用 Dropbox 选择器怎么样(选择器文档页面的一半)

javascript:

App.IndexController = Ember.ArrayController.extend({
  dropboxChooser: function() {

    Dropbox.choose({
      linkType: "direct",
      multiselect: false,
      success: function(files) {
                // Required. Called when a user selects an item in the Chooser
                alert("Here's the file link:" + files[0].link);
      },
      cancel:  function() {}
    });
  }
});

模板:

<button {{action dropboxChooser}}>Choose Dropbox File</button>

功能 JSBin 排序(无效data-app-key

于 2013-06-01T21:28:08.523 回答