機能を画像クロップ ライブラリ ( https://github.com/fengyuanchen/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 を除いて、init のパラメータは定義されていません。ただし、この一般的なパターンを使用する例をいくつか見てきました (例:ここ)。私は何を間違っていますか?