Jquery 使用敲除对fileupload控件进行双向绑定?
有一个fileupload控件没有问题,该控件有一个自定义绑定来更新可观察对象,这会导致上载的文件存储在image uploads文件夹中 但如何反向执行此操作,以便在编辑文章时可以再次检索文件对象以链接到fileupload控件?因为它绑定到自定义绑定,所以无法手动设置其中的可观察项。我尝试将imageURL设置为我知道存在的路径,但该值不会固定,并且仍然未定义 我相信我需要以某种方式将主文件observable再次设置为文件对象,但我不知道如何通过ajax调用实现这一点——我如何返回文件,就好像它刚刚在fileupload控件中被选中一样Jquery 使用敲除对fileupload控件进行双向绑定?,jquery,knockout.js,Jquery,Knockout.js,有一个fileupload控件没有问题,该控件有一个自定义绑定来更新可观察对象,这会导致上载的文件存储在image uploads文件夹中 但如何反向执行此操作,以便在编辑文章时可以再次检索文件对象以链接到fileupload控件?因为它绑定到自定义绑定,所以无法手动设置其中的可观察项。我尝试将imageURL设置为我知道存在的路径,但该值不会固定,并且仍然未定义 我相信我需要以某种方式将主文件observable再次设置为文件对象,但我不知道如何通过ajax调用实现这一点——我如何返回文件,就
<input type="file" id="articleImage" data-bind="fileUpload: imageFile, fileObjectURL: imageObjectURL" />
ko.bindingHandlers.fileUpload = {
init: function (element, valueAccessor) {
$(element).change(function () {
var file = this.files[0];
if (ko.isObservable(valueAccessor())) {
valueAccessor()(file);
}
});
},
update: function (element, valueAccessor, allBindingsAccessor) {
var file = ko.utils.unwrapObservable(valueAccessor());
var bindings = allBindingsAccessor();
if (bindings.fileObjectURL && ko.isObservable(bindings.fileObjectURL )) {
var oldUrl = bindings.fileObjectURL ();
if (oldUrl) {
windowURL.revokeObjectURL(oldUrl);
}
bindings.fileObjectURL (file && windowURL.createObjectURL(file));
}
}
};
不起作用-除非我将其从数据绑定定义中删除,否则imageObjectURL将保持未定义状态。bindings.imageObjectURL始终为false,因为您没有此绑定。你应该使用bindings.fileObjectURL而不是它。对不起,这只是我问题中的一个输入错误。上传位工作正常,我试图在从数据库检索时让系统正常工作。
imageObjectURL("//path/to/image/image.jpg")