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

下面只是一个示例代码片段。请找到Fiddle

<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);
});

最佳答案

这比需要的复杂得多。


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

<input data-bind="value: Menge "/>

要监听此Menge观察对象触发的更改事件,只需在创建它后立即订阅它(在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);
  });
};



这是更新的fiddle

10-06 12:22