크기 조정 가능한 jquery에 대한 녹아웃 바인딩을 만들려고합니다. 내 사용자 정의 바인딩은 뷰 모델에서 두 개의 서로 다른 관찰 가능 객체, 즉 "왼쪽"과 "너비"에 바인딩됩니다. 나는 왼쪽 핸들을 사용하여 내 DIV 크기를 조정할 때knockout 사용자 정의 할 수있는 2 개의 관찰 가능 항목에 대한 바인딩이 두 번 업데이트되었습니다.
<div class="layer" data-bind="resizable: {left: left, width: width}">
<div class="left ui-resizable-handle ui-resizable-w"><<<</div>
<div class="right ui-resizable-handle ui-resizable-e">>>></div>
</div>
ko.bindingHandlers.resizable = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var values = valueAccessor();
$(element).resizable({
handles: null,
resize: function(event, ui) {
values.left(ui.position.left);
values.width(ui.size.width);
}
});
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var values = valueAccessor();
$(element)
.css('left', values.left() + 'px')
.css('width', values.width() + 'px')
;
}
};
var vm = {
left: ko.observable(50),
width: ko.observable(300)
};
ko.applyBindings(vm);
문제는이 명 관찰 가능한 업데이트하여 같은 바인딩 2 업데이트를 트리거 가져옵니다이다. 하나의 업데이트 만 실행하면됩니다.
이러한 종류의 바인딩에는 어떤 옵션이 있습니까? 둘 이상의 관측 가능에 바인딩하는 바인딩을 만드는 데 권장되는 방법은 무엇입니까?
내 실제 코드는 더 복잡하다,하지만 난 IV이 바이올린에 내 문제를 삶은 생각 :
http://jsfiddle.net/MatteS75/3dwVp/10/