【问题标题】:Kendo UI: Force update of ViewModel on KeyPress in TextBoxKendo UI:在 TextBox 中的 KeyPress 上强制更新 ViewModel
【发布时间】:2014-08-30 19:25:36
【问题描述】:

我有一个文本框字段,它的 value 属性绑定到我的 ViewModel 中的一个属性。

问题在于 ViewModel 默认在文本框的“更改”事件上更新(当文本框失去焦点时)。

我希望在执行按键事件时更新 ViewModel。

我不想在每次按键时强制“更改”事件,因为该事件处理程序中有一些逻辑,并且不必为每次按键执行。

有没有办法告诉 Kendo 在不触发“更改”事件的情况下更新 ViewModel?

我知道我可以手动修改 ViewModel,但我想要一些更简单和自动化的东西。

感谢您的回答,

【问题讨论】:

    标签: mvvm binding kendo-ui


    【解决方案1】:

    使用数据值更新属性。使用“keypress”事件不会更新绑定模型的最后一个字符,因此请改用“keyup”事件。

    <input id="name" type="text" 
        data-bind="value: name" data-value-update="keyup">
    

    我最初使用“keypress”进行测试,但在 ViewModel 中输入文本“abcd”会导致“abc”。

    【讨论】:

    • 让它成为一个可以独立的答案,即使 CodingWithSpike 的答案会被删除,因为它是对答案的评论,而不是答案。
    • 谢谢,笨蛋。我改为将回复的格式更改为答案。
    • 不幸的是,它不适用于他们的小部件(maskedtextbox,numberictextbox)
    【解决方案2】:

    您可以将data-value-update 属性添加到您的元素:

    <input data-bind="value: someValue"
           data-value-update="keypress" />
    

    文档在这里:Controlling When the ViewModel is Updated

    【讨论】:

      【解决方案3】:
       <input    type="text"  data-value-update="keypress"  data-bind="value: searchBySystemValue, events: { keypress: onkeypressEvent }"/>
      

      你可以在事件中添加功能

      【讨论】:

        猜你喜欢
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        相关资源
        最近更新 更多