我有一个名为 MainViewModel 的viewModel。
var MainViewModel = function(){
this.selectedFiles = ko.observableArray();
this.onFileSelectedEvent = function(evt){
}
}
我有一个HTML页面,其中包含类型为文件的输入。
<input type="file" data-bind="event:{ change: onFileSelectedEvent }"/>
我想用 onFileSelectedEvent 处理程序填充 selectedFiles 。但是 onFileSelectedEvent 参数是 MainViewModel 的类型,它不包含所选文件。
如何处理所选文件?
答案 0 :(得分:4)
默认情况下,event
binding处理程序第二个参数是事件对象:
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);
});
}
}
演示JSFiddle。
第一个参数是当前数据上下文,因此在您的情况下为MainViewModel