【问题标题】:Custom binding for $.expandingTextarea with knockout.js$.expandingTextarea 与 knockout.js 的自定义绑定
【发布时间】:2012-06-29 08:13:53
【问题描述】:

我正在编写一个自定义绑定以使用 $.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 that illustrates 的问题。

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

【问题讨论】:

    标签: knockout.js knockout-2.0


    【解决方案1】:

    这里是the solution on 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");
        }
    };
    

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

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      • 2013-11-07
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多