У меня есть настройка viewModel, которая получает ширину и высоту из текстовых вводов.Я хочу передать эту ширину и высоту атрибутам data-width и data-height на входе файла.
Я использую jQuery.fileupload.js для обработки процесса загрузки файла,Проблема, с которой я сталкиваюсь, заключается в том, что после добавления файла во входные данные привязки к атрибутам данных больше не обновляются при изменении текстовых вводов.
html
<input id="file" type="file" data-bind="attr:{'data-height': height, 'data-width': width}" /><br />
<input type="text" data-bind="textInput: width" /><br />
<input type="text" data-bind="textInput: height" />
scripts
var ViewModel = function(width, height) {
this.width = ko.observable(width);
this.height = ko.observable(height);
};
ko.applyBindings(new ViewModel(300, 300));
var $file = $('#file');
$file.fileupload({
add: function(){
ko.cleanNode($file[0]);
ko.applyBindings(ViewModel, $file[0]);
},
change: function(e, data) {
ko.cleanNode($file[0]);
ko.applyBindings(ViewModel, $file[0]);
}
});
https://jsfiddle.net/jrwdev/1n9ye60z/3/
Как я могу убедиться, что привязки остаются или, по крайней мере, повторно привязываются к входному файлу при обновлении элемента ввода?