首页 > 解决方案 > Knockout js Table Edit 列获取 onkeyup/Onchange 最新值。[小提琴] (https://jsfiddle.net/chiks/975ncawv/521/)

问题描述

我有一个用于表的淘汰模型。在表 1 中的列始终是可编辑的。我希望获得此列的更改值,即当 onchange/onKeyup 事件发生时,新更改的值应该对我可用,即在警报中我应该收到最新更改的值。

下面只是一个示例代码片段。请找小提琴

<td>
      <input data-bind="event: {change:$parent.value_changed},value: Menge "/>  
  </td>  


 self.value_changed = ko.observable(self.items());
    refVM.value_changed.subscribe(function (newValue) {
   alert(newValue);
});

标签: javascripthtmlknockout.jsknockout-3.0

解决方案


这比它需要的要复杂得多。

  1. 默认情况下,可观察对象在其值更新时触发更改事件。您无需在 HTML 中创建事件绑定来监听更改。保持这样:

    <input data-bind="value: Menge "/>
    
  2. 要侦听此Mengeobservable 触发的更改事件,只需在它创建后立即订阅它(在 RowModel 构造函数中)。

    var RowModel = function(bild,artikelnummer, bezeichnung,kategorie,preis,menge,preisgesamt,removePeople, werbemittelId) {
      this.Bild = ko.observable(bild);
      this.Artikelnummer = ko.observable(artikelnummer);
      ...
      this.Menge = ko.observable(menge);
      ...
    
      this.Menge.subscribe(function(newValue){
        alert(newValue);
      });
    };
    

这是更新的小提琴


推荐阅读