我剛纔開始使用knockoutjs。在下面的代碼中,我試圖以雙向方式綁定DIV的寬度。在knockoutjs中的雙向綁定
var ViewModel = function() {
this.width = ko.observable(7);
};
ko.bindingHandlers.widthBinding = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var div = $(element);
var value = valueAccessor();
var Width = ko.utils.unwrapObservable(value);
div[0].style['width'] = Width + "px";
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = valueAccessor();
var Width = ko.utils.unwrapObservable(value);
div[0].style['width'] = Width + "px";
}
};
$("#contentDiv").enableResize();
ko.applyBindings(new ViewModel());
<input data-bind="value: width" />
<div id="contentDiv" data-bind="widthBinding : width" >
在上面的代碼中,我有兩個UI元素,一個是文字輸入,另一種是DIV.And我們能夠在運行時調整其大小DIV。如果我在文本輸入中輸入一些數字,將適用於DIV的寬度,這是工作正常。同時,如果我在運行時調整DIV的大小,則意味着它的寬度應該反映到文本輸入中。有沒有辦法做到這一點?
有你見過嗎?似乎相關:http://stackoverflow.com/questions/5610689/knockout-js-how-to-bind-a-div-width-height-to-form-fields –