Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用敲除对fileupload控件进行双向绑定?_Jquery_Knockout.js - Fatal编程技术网

Jquery 使用敲除对fileupload控件进行双向绑定?

Jquery 使用敲除对fileupload控件进行双向绑定?,jquery,knockout.js,Jquery,Knockout.js,有一个fileupload控件没有问题,该控件有一个自定义绑定来更新可观察对象,这会导致上载的文件存储在image uploads文件夹中 但如何反向执行此操作,以便在编辑文章时可以再次检索文件对象以链接到fileupload控件?因为它绑定到自定义绑定,所以无法手动设置其中的可观察项。我尝试将imageURL设置为我知道存在的路径,但该值不会固定,并且仍然未定义 我相信我需要以某种方式将主文件observable再次设置为文件对象,但我不知道如何通过ajax调用实现这一点——我如何返回文件,就

有一个fileupload控件没有问题,该控件有一个自定义绑定来更新可观察对象,这会导致上载的文件存储在image uploads文件夹中

但如何反向执行此操作,以便在编辑文章时可以再次检索文件对象以链接到fileupload控件?因为它绑定到自定义绑定,所以无法手动设置其中的可观察项。我尝试将imageURL设置为我知道存在的路径,但该值不会固定,并且仍然未定义

我相信我需要以某种方式将主文件observable再次设置为文件对象,但我不知道如何通过ajax调用实现这一点——我如何返回文件,就好像它刚刚在fileupload控件中被选中一样

<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")