【发布时间】:2015-01-20 08:30:29
【问题描述】:
我现在才开始使用 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 的大小意味着它的宽度应该反映到文本输入中。有什么办法吗?
【问题讨论】:
-
你看到了吗?似乎相关:stackoverflow.com/questions/5610689/…
标签: knockout.js