Knockout保护可观察

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Knockout保护可观察相关的知识,希望对你有一定的参考价值。

我想在我的代码中使用受保护的observable,所以我找到了这个教程:

HERE

在网站上播放演示时,我发现了以下场景:

  • 单击特定行的编辑按钮,然后更改输入字段的值,但不要单击“接受”按钮。
  • 然后转到另一行并单击它的编辑按钮。
  • 然后返回到您更改其中一个输入字段值的行,单击“编辑”,然后单击“接受”。您会发现最初更改的值将被保存。

我相信这会让最终用户感到困惑,因为当您最初更改该值时,在您单击另一行的编辑按钮后,该值不会出现在屏幕上。屏幕上显示的值仍然是原始值。

那么,你如何解决这个问题呢?

答案

问题不在受保护的可观察对象中,而是演示如何处理编辑按钮。

要使它适用于editItem中的场景,您需要在开始编辑新行之前取消所有待处理的编辑:

this.editItem = function(item) {
    if (self.selectedItem() != null)
        self.cancelItemEdit()
    self.selectedItem(item);
};

但是,是的zxsw poi。

以上是关于Knockout保护可观察的主要内容,如果未能解决你的问题,请参考以下文章

将多个输入绑定到可观察数组中的同一变量(Knockout.JS)

Knockout 订阅可观察的复杂对象的任何变化

如何在 Knockout 中创建计算的可观察数组

Knockout/Select2:触发 select2 根据可观察的选项更新进行更新

knockout.js 可观察数组表上方的静态行

在 knockout.js 中进行 ajax 检索后使字段可观察