У меня есть нокаутирующая настраиваемая привязка, которая переносит функциональность в библиотеку обрезки изображений (https://github.com/fengyuanchen/cropper .) Я перехватываю событиеcropend.cropper, чтобы (в конечном итоге) прикрепить обрезанный вывод к наблюдаемому.
Я использую:
- нокаут 3.3
- jquery 2.1.4
- обрезка 2.0
Вот обработчик привязки:
ko.bindingHandlers.cropper = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var $element = $(element);
var value = ko.unwrap(valueAccessor());
var a = 1;
ko.utils.registerEventHandler(element, "cropend.cropper", function (event) {
var previewOutputObservable = allBindings.get('previewOutput');
var valueAccessorFromAllBindings = allBindings.get('cropper');
var b = 1;
});
$element.cropper(value);
},
update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var $element = $(element);
var value = ko.unwrap(valueAccessor());
var c = 1;
}
};
И вот элемент, к которому я привязываюсь:
<img class="img-responsive" data-bind="attr: {'src': sampleObservable}, cropper: { aspectRatio: 16/9 }, previewOutput: cropPreview "/>
Когда я ставлю точку останова (в хроме) на var b = 1
; ни один из параметров в инициализации не определен, кроме allBindings. Я видел несколько примеров, использующих этот общий шаблон (например, здесь). Что я делаю не так?