我刚刚开始使用knockoutjs。在下面的代码中,我只是试图以双向方式绑定DIV的宽度。
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。我们可以在运行时调整DIV的大小。如果我在文本输入中输入一些数字将适用于DIV的宽度,那就行了。同时,如果我在运行时调整DIV大小,则意味着其宽度应反映在文本输入中。有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用样式绑定来更改宽度:
<input data-bind="value:width ,style : { width : width()+'px' }" />