简体   繁体   English

html输入文件与淘汰表绑定

[英]html input files binding with knockoutjs

I have a viewModel named MainViewModel . 我有一个名为MainViewModel的viewModel。

var MainViewModel = function(){
    this.selectedFiles = ko.observableArray();

    this.onFileSelectedEvent = function(evt){

    }
}

and I have an HTML page that includes input that type is file. 我有一个HTML页面,其中包含类型为file的输入。

<input type="file" data-bind="event:{ change: onFileSelectedEvent }"/>

I want to fill selectedFiles with onFileSelectedEvent handler. 我想用onFileSelectedEvent处理程序填充selectedFiles But onFileSelectedEvent parameter is coming type of MainViewModel it does not include selected files. 但是onFileSelectedEvent参数是MainViewModel的即将到来的类型,它不包括选定的文件。

How can I handle selected files? 如何处理选定的文件?

Inside your event binding handler by default the second parameter is the event object: 默认情况下event绑定处理程序内部,第二个参数是事件对象:

var MainViewModel = function(){
    var self = this;
    self.selectedFiles = ko.observableArray();

    self.onFileSelectedEvent = function(vm, evt){
        ko.utils.arrayForEach(evt.target.files,  function(file) {
            self.selectedFiles.push(file.name);
        });
    }
}

Demo JSFiddle . 演示JSFiddle

The first parameter is the current data context so in your case the MainViewModel 第一个参数是当前数据上下文,因此在您的情况下为MainViewModel

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM