Ember 观察 DOM 元素
Ember Observe DOM Element
我有一个
<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 之类的东西。
我有一个
<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 之类的东西。