在敲除绑定中使用 dropzone.js
Using dropzone.js within a knockout binding
我正在尝试让 dropzone 用作敲除绑定。我真的很想能够...
ko.bindingHandlers.dropzone = {
init: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
$(element).dropzone({ url: 'some/tightly/bound/uri});
}
}
..但我不能。 uri 是基于在视图模型中输入的数据动态的,所以这是我到目前为止想出的:
var dropzoneObject; // probably should be this.dropzoneObject
ko.bindingHandlers.dropzone = {
init: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject = new Dropzone("div#" + element.id, {
url: url,
init: ...,
etc
});
},
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options = {
url: url
};
}
}
但是当我对此进行测试时,出现以下错误:
Uncaught TypeError: Cannot read property 'trim' of undefinedDropzone.defaultOptions.addedfile
@ dropzone.js:252Emitter.emit @ dropzone.js:58Dropzone.addFile
@ dropzone.js:956(anonymous function) @ dropzone.js:563
为什么是undefinedDropzone
?我错过了什么?
谢谢
找到答案,我的更新方法是覆盖所有选项(包括默认选项)而不是更新它:
....
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options = {
url: url
};
}
....
应阅读:
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options.url = url;
}
希望这对某人有所帮助!
我正在尝试让 dropzone 用作敲除绑定。我真的很想能够...
ko.bindingHandlers.dropzone = {
init: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
$(element).dropzone({ url: 'some/tightly/bound/uri});
}
}
..但我不能。 uri 是基于在视图模型中输入的数据动态的,所以这是我到目前为止想出的:
var dropzoneObject; // probably should be this.dropzoneObject
ko.bindingHandlers.dropzone = {
init: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject = new Dropzone("div#" + element.id, {
url: url,
init: ...,
etc
});
},
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options = {
url: url
};
}
}
但是当我对此进行测试时,出现以下错误:
Uncaught TypeError: Cannot read property 'trim' of undefinedDropzone.defaultOptions.addedfile
@ dropzone.js:252Emitter.emit @ dropzone.js:58Dropzone.addFile
@ dropzone.js:956(anonymous function) @ dropzone.js:563
为什么是undefinedDropzone
?我错过了什么?
谢谢
找到答案,我的更新方法是覆盖所有选项(包括默认选项)而不是更新它:
....
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options = {
url: url
};
}
....
应阅读:
update: function(element, valueAccessor, allBindingsAccessor, bindingContext) {
var url = allBindingsAccessor().urlPath || "unknown";
dropzoneObject.options.url = url;
}
希望这对某人有所帮助!