使用Knockoutjs将某些数据绑定值转换为Json

时间:2014-06-24 13:18:45

标签: javascript json knockout.js

我是knockoutjs的新手,我有以下viewmodel:

var Testing = function(){

   this.Username = ko.observable("");  
   this.Password = ko.observable("");  
   this.email = ko.observable("");

}

我只需要将某些数据绑定值(用户名和密码)转换为json。当我使用data = ko.toJSON(this);

时,所有的值都会转换为json

那么如何过滤某些数据绑定值并转换为json?

2 个答案:

答案 0 :(得分:2)

您既可以序列化您想要的内容,也可以采用Ryan Neidermeyer的方法,只需删除不需要的属性 -

var items = ko.toJS(this);
var mappedItems = ko.utils.arrayMap(items, function(item) {
    delete item.email;
    return item;
});

答案 1 :(得分:1)

您可以向ViewModel添加toJSON方法,并执行您需要的过滤:

ViewModel.prototype.toJSON = function() {
    var copy = ko.toJS(this);
    // remove any unneeded properties
    delete copy.unneedProperty;
    return copy;
}

有关序列化为JSON的更多信息,请查看docs