Javascript 在淘汰js中更改服务器中的数据

Javascript 在淘汰js中更改服务器中的数据,javascript,knockout.js,Javascript,Knockout.js,我有一个这样的状态模型: var stateModel = { StateId: ko.observable(0), StateName: ko.observable('').extend({ required: true }).extend({ pattern: { message: 'Enter only Text', params: '^[a-zA-Z ]*$'} }), ShortName: ko.observable('')

我有一个这样的状态模型:

 var stateModel = {
     StateId: ko.observable(0),
     StateName: ko.observable('').extend({ required: true }).extend({ pattern: { message: 'Enter only Text', params: '^[a-zA-Z ]*$'} }),
     ShortName: ko.observable('')
                     .extend({ required: true })
                     .extend({ pattern: 
                                 { message: 'Enter only Text', params: '^[a-zA-Z ]*$'}
                             }),
     IsActive: ko.observable(true),
     CountryId: ko.observable().extend({ required: true })    
}
   {"argBO":
      { "StateId":0, 
        "StateName":"jjhj",
        "ShortName":"jjj",
        "IsActive":true,
        "CountryId":8,
        "errors":[],
        "CountryName":"Antigua and Barbud"
      }
    }
我通过以下方式将其转换为json字符串发布:

  var args=JSON.stringify({argBO: jQuery.parseJSON(ko.toJSON(self.StateModel))});
在此之后,我想将其推送到我的可观察数组状态列表,因此我将其转换为对象,并将其推送到如下位置:

   var model = jQuery.parseJSON(ko.toJSON(self.StateModel));
   self.StatesList.push(model);
我的args将如下所示:

 var stateModel = {
     StateId: ko.observable(0),
     StateName: ko.observable('').extend({ required: true }).extend({ pattern: { message: 'Enter only Text', params: '^[a-zA-Z ]*$'} }),
     ShortName: ko.observable('')
                     .extend({ required: true })
                     .extend({ pattern: 
                                 { message: 'Enter only Text', params: '^[a-zA-Z ]*$'}
                             }),
     IsActive: ko.observable(true),
     CountryId: ko.observable().extend({ required: true })    
}
   {"argBO":
      { "StateId":0, 
        "StateName":"jjhj",
        "ShortName":"jjj",
        "IsActive":true,
        "CountryId":8,
        "errors":[],
        "CountryName":"Antigua and Barbud"
      }
    }
如果我可以从上面删除argBO,我可以直接推送'args'而不是self.StateModel,再次将args转换为对象

self.StatesList.Push(args);
我试着这样做:

jQuery.parseJSON(args(jQuery.parseJSON(argBO)))
jQuery.parseJSON(args(jQuery.parseJSON[argBO]))
jQuery.parseJSON(args[argBO]))
但是他们都不工作请告诉我

您可以尝试以下方法:

var JSONargs = jQuery.parseJSON(ko.toJSON(self.StateModel));
或者如果您使用knockout.mapping.js插件:

var JSONargs = ko.mapping.toJS(self.StateModel);
当您想发布它时,您可以执行以下操作:

$.ajax({data: JSON.stringify({ argBO: JSONargs });
然后你的推力可能是

self.StatesList.Push(JSONargs);

为什么?我的意思是,为什么要将JSON解析为toJSON?我只想在每次尝试这个控制台时将'argBO'对象推入我的可观察数组,而不是'args'。logko.utils.parseJsonargs.argBO.StateName,它会打印我的StateName的正确值,就像我尝试更改StateName一样,比如ko.utils.parseJsonargs.argBO.StateName='asdf';它没有改变,为什么