我正试图让掉区作为一个淘汰赛的装订。我真的很想能..。
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?我错过了什么?
谢谢
发布于 2015-07-07 17:03:54
找到答案后,我的update方法完成了编写所有选项(包括默认选项)的工作,而不是对其进行更新:
....
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;
}希望这能帮到别人!
https://stackoverflow.com/questions/31271850
复制相似问题