我正在尝试将 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 元素?
最佳答案
直接通过 javascript 使用 Dropbox Chooser 怎么样(the chooser documentation 页面的中间位置)
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>
关于javascript - 使用 ember 添加 Dropbox 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875854/