javascript - knockout 保护可观察

标签 javascript jquery knockout.js

我想在我的代码中使用 protected 可观察量,所以我找到了这个教程:

HERE

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

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

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

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

最佳答案

问题不在于 protected 可观察对象,而在于演示如何处理编辑按钮。

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

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

演示 JSFiddle .

关于javascript - knockout 保护可观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158537/

相关文章:

javascript - 如何在数据绑定(bind) View 中模板化 If-Else 结构?

javascript - 我现在有一个下拉菜单如何使用 css 在一个链接内创建子菜单

javascript - 我可以暂停函数的执行,直到 Node 收到某些值吗?

javascript - Meteor发布错误检测

javascript - 回调中的递归函数原型(prototype)

javascript - 如何在应用程序中显示实时 console.logs?

JQuery 链式过滤器下拉列表

javascript - 我希望能够获取所有 `<b></b> 的内容

javascript - 需要访问选中的复选框

javascript - 禁用表中的按钮