2015-10-19 130 views
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