【发布时间】:2015-03-09 20:05:04
【问题描述】:
我有一个
<input type="file">
在我的 DOM 中。如果此输入中的文件发生更改,是否可以使用 Ember 技术触发操作,或者我是否必须使用第三方库(如 jquery-observe)?
【问题讨论】:
我有一个
<input type="file">
在我的 DOM 中。如果此输入中的文件发生更改,是否可以使用 Ember 技术触发操作,或者我是否必须使用第三方库(如 jquery-observe)?
【问题讨论】:
是的,当然有可能。
您可以按如下方式创建文件字段组件:
// put in components/file-field.js if you are using ember-cli
import Ember from "ember"
export default Ember.TextField.extend({
type: 'file',
attributeBindings: ['multiple'],
multiple: false,
change: function(event) {
var input = event.target();
if (!Ember.isEmpty(input.files)) {
this.sendAction("filesChanged", input.files);
}
}
});
现在把它放在你的模板中代替你的
{{file-field filesChanged="uploadFile"}}
然后在控制器或您的一个路由中,此操作会冒泡,定义您的 uploadFile 操作:
actions: {
uploadFile: function(files) {
// put your ajax call to upload the file(s) here
}
}
虽然这足以让您开始学习,但我绝对建议在实际应用程序中使用类似 ember-cli-uploader 的内容。
【讨论】: