2015-07-01 138 views
1

我想使用的保護觀察到在我的代碼,所以我發現這個教程:淘汰賽保護觀察的

HERE

雖然與網站上的演示播放時,我發現了以下情況:

  • 單擊特定行的編輯按鈕,然後更改輸入字段的值,但不要單擊接受按鈕。
  • 然後轉到另一行並單擊它的編輯按鈕。
  • 然後回到您更改其中一個輸入字段值的行,單擊編輯,然後單擊接受。您會發現您最初更改的值將被保存。

我相信這會混淆最終用戶,因爲當您最初更改該值時,單擊另一行的編輯按鈕後,該值不出現在屏幕上。屏幕上顯示的值仍然是原始值。

那麼,你如何解決這個問題呢?

回答

1

問題不在受保護的observable中,而是演示如何處理編輯按鈕。

爲了讓您的方案中的工作editItem你需要取消所有待編輯開始編輯新行之前:

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

演示JSFiddle