gpt4 book ai didi

knockout.js - knockoutjs中的两种方式绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 02:19:28 25 4
gpt4 key购买 nike

我现在才开始使用 knockoutjs。在下面的代码中,我只是试图以两种方式绑定(bind) 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 的大小意味着它的宽度应该反射(reflect)到文本输入中。有什么办法吗?

最佳答案

您可以使用样式绑定(bind)来更改宽度:

<input data-bind="value:width ,style : { width : width()+'px' }" />

http://jsfiddle.net/gurkavcu/GHgX7/

关于knockout.js - knockoutjs中的两种方式绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com