0

我正在编写一个自定义绑定以将$.expandingTextareaKnockout.js一起使用。

继出色的文章Another Look at Custom Bindings for KnockoutJS之后,我希望它会像下面这样简单:

ko.bindingHandlers.expandingTextarea = {
  init: function(element, valueAccessor) {
    $(element).expandingTextarea();
  },
   update: function(element, valueAccessor, aBA, vm) {
    ko.bindingHandlers.value.update(element, valueAccessor, aBA, vm);
    $(element).expandingTextarea("resize");
  }
}

不幸的是,这并没有按预期工作 - 即当对 textarea 进行更改时,相应的视图模型不会更新。这是一个说明问题的jsFiddle。

如何为扩展文本区域插件创建 KO 自定义绑定?

4

1 回答 1

1

这是jsFiddle 上的解决方案,即还添加值绑定init(其中包含捕获参数指定的事件的代码valueUpdate):

ko.bindingHandlers.expandingTextarea = {
    init: function(element, valueAccessor, aBA, vm) {
        $(element).expandingTextarea();
        ko.bindingHandlers.value.init(element, valueAccessor, aBA, vm);
    },
    update: function(element, valueAccessor, aBA, vm) {
        ko.bindingHandlers.value.update(element, valueAccessor, aBA, vm);
        $(element).expandingTextarea("resize");
    }
};

我希望这对其他人有帮助!:)

于 2012-06-29T00:13:53.730 回答