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('')
                     .extend({ required: true })
                     .extend({ pattern: 
                                 { message: 'Enter only Text', params: '^[a-zA-Z ]*$'}
                             }),
     IsActive: ko.observable(true),
     CountryId: ko.observable().extend({ required: true })    
}

我通过以下方式将其转换为 json 字符串来发布:

  var args=JSON.stringify({argBO: jQuery.parseJSON(ko.toJSON(self.StateModel))});

在此之后,我想将其推送到我的可观察数组 StateList() 中,因此我将其转换为对象并像这样推送它:

   var model = jQuery.parseJSON(ko.toJSON(self.StateModel));
   self.StatesList.push(model);

我的参数将如下所示:

   {"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);

关于javascript - 在knockout js中更改服务器的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23674106/

相关文章:

javascript - ViewModel 的 Qunit 测试

javascript - 尝试让knockout js检查数据是否每10秒来一次

knockout.js - knockout 绑定(bind)到 Select optionsText 以获取 fullName

ajax - knockout 绑定(bind)上下文将父级作为参数传递

javascript - 如何从数组中删除所有奇数索引(例如 : a[1], a[3]..)值

javascript - 为什么 vue-property-decorator @Emit 在 Vue TypeScript 文件中不起作用?

javascript - Uncaught ReferenceError : Invalid left-hand side in assignment

javascript - 强制 knockout 计算以在替换内部可观察值后重新评估

javascript - 淡入淡出联系表 "Thank You"Div

javascript - 如何为Angular 5中的函数调用提供时间延迟?