1

我如何使用带有淘汰赛的 autoresize()?

这是我拥有的代码的精简版本。

<div data-bind="foreach: Rows" >
  <textarea data-bind="value: RowText" ></textarea>
</div>

我无法弄清楚如何在每个文本区域上调用 autoresize 以使它们适合绑定到它们的文本。

基于artems的回答,最终的解决方案是

$(document).ready(function () {
        ko.bindingHandlers.jqAutoresize = {
            update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
                $(element).autosize();
            }           
        };
}
4

1 回答 1

1

您可以创建适用autoresize()于所有的自定义绑定textareas

ko.bindingHandlers.jqAutoresize = {
    init: function(element, valueAccessor) {
        var options = ko.utils.unwrapObservable(valueAccessor()) || {};

        $(element).autoResize(options);
    }
};

更新您的观点:

<div data-bind="foreach: Rows" >
  <textarea data-bind="jqAutoresize: {}, value: RowText" ></textarea>
</div>
于 2012-09-03T15:26:22.827 回答