我有一个
<input type="file">
在我的DOM中。如果此输入中的文件发生更改,或者我是否必须使用第三方库(如jquery-observe),是否可以使用Ember技术触发操作?
答案 0 :(得分:2)
是的,当然有可能。
您可以按如下方式创建文件字段组件:
// 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);
}
}
});
现在将其放在您的模板中,代替您的&lt; input type =&#34; file&#34;&gt;
{{file-field filesChanged="uploadFile"}}
然后在控制器或您的某个路线中,此操作将冒泡,请定义您的uploadFile操作:
actions: {
uploadFile: function(files) {
// put your ajax call to upload the file(s) here
}
}
虽然这足以让您开始学习,但我肯定会建议在实际应用程序中使用类似ember-cli-uploader的内容。