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 之类的东西。