【问题标题】:Tell knockout observable to rebind from source告诉淘汰赛 observable 从源头重新绑定
【发布时间】:2013-11-26 18:33:03
【问题描述】:

如果我有一个在 keydown 事件之外更新的文本区域,它不会重新绑定我的 observable。

我尝试调用model.WrittenContent.valueHasMutated() 来刷新文本区域不是可观察的。

我目前正在使用我认为是 hack 的方式来执行此操作,但我不希望以这种方式执行此操作...

model.WrittenContent($('#my-input').val());

我可以通过淘汰赛来重新评估 textarea 的价值吗?

【问题讨论】:

    标签: data-binding knockout.js knockout-3.0


    【解决方案1】:

    问题似乎是,无论您更新 textarea 所做的事情都不会导致 textarea 发出绑定正在侦听的任何类型的事件,因此 Knockout 无法知道它需要更新任何可观察的。

    可能你能做的最好的事情是这样的

    $('#my-input').change();
    

    它应该生成一个绑定可以识别的change 事件,假设valueUpdate 参数设置为change(默认情况下)。顺便说一句,如果您要绑定到设置了 contenteditable 的非表单元素,这也是您必须做的,因为它们不会自行生成 change 事件。

    【讨论】:

    • 是的,我认为你是对的,我使用的是 pagedown 编辑器(比如这里的堆栈溢出),但是尽管更改了文本框的值,但单击粗斜体等并没有更新 observable。
    猜你喜欢
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2020-05-30
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多