Ember观察DOM元素

时间:2015-03-09 20:05:04

标签: dom ember.js

我有一个

<input type="file">

在我的DOM中。如果此输入中的文件发生更改,或者我是否必须使用第三方库(如jquery-observe),是否可以使用Ember技术触发操作?

1 个答案:

答案 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的内容。