【问题标题】:How to trigger a function with textInput binding?如何使用 textInput 绑定触发函数?
【发布时间】:2015-06-16 17:16:47
【问题描述】:

我正在使用 Knockout.js 3.3.0。在我的视图模型中,我有很多数据行,它们显示在带有 foreach 绑定的表中。在每一行中都有一个绑定到可观察对象的文本输入。我想要实现的是:每当文本更改时,都应该将其发送到内联函数中,以便我可以处理更改。这是我的输入:

<input type="text" data-bind="
    textInput: MyText(),
    event: { 
        keyup: function(data, event) { console.log(data.MyText()); }
    }" />

上面的代码没有输出任何东西,我没有收到任何错误。例如,我如何必须更改绑定才能立即在控制台上看到 MyText() 的更改?提前致谢!

【问题讨论】:

  • 你为什么这样做?也许更好的是订阅可观察属性 MyText?

标签: javascript knockout.js


【解决方案1】:

您正在通过编写textInput: MyText() 使您的绑定“单向”,因为您正在绑定它的值和可观察对象本身。

这就是event 绑定没有正确记录的原因。

所以你只需要删除()

<input type="text" data-bind="
    textInput: MyText,
    event: { 
        keyup: function(data, event) { console.log(data.MyText()); }
    }" />


<span data-bind="text: MyText" />

演示JSFiddle.

【讨论】:

  • 耶!现在我知道了。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多