0

如何將視圖更新爲更改viewmodel代碼中發生了什麼?如何使用knockout.js更新模型更改視圖?

下面的應用程序顯示條目列表並更新總數。它可以工作,我可以將更新後的數據導出到JSON對象中,並可以在單擊按鈕時使用修改後的數據更新模型變量。

console.log(ko.toJSON(self.List())); 

視圖不上按鈕更新點擊

<span data-bind="text: jsonList"></span> 

什麼我必須做的更新視圖?我曾嘗試以下的變化:

self.jsonList=ko.observable(ko.toJSON(self.List())) 
self.show = function(){//the button click function 
    self.jsonList = ko.computed(function(){ 
     var newval = self.jsonList() 
     newval = ko.toJSON(self.List()) 
     console.log(jsonList()) 
     //newval.valueHasMutated(); 
     return newval; 
    }) 
} 

Here is the fiddle

回答

1

您的代碼未正確更新下面的觀察到的是你的代碼的修改版本,更新點擊JSON字符串,以及一個通過執行它的一個可觀察到的計算(jsonList2)

叉形小提琴可以在http://jsfiddle.net/n0jfhs8k/2/

self.show = function(){//the button click function 
    self.jsonList(ko.toJSON(self.List())); 
} 

self.jsonList2 = ko.computed(function(){ 
     var newval = self.jsonList() 
     newval = ko.toJSON(self.List()) 
     return newval; 
    }); 
中找到
+0

啊簡單幹淨。它甚至可以在不使用'var newval = self.jsonList()'行的情況下運行,並且只使用'var newval = ko.toJSON(self.List())'。 – mcktimo