我无法为包含一些ko.observables
的javascript对象设置新值。
我得到的价值如下:
var args= {"argBO":{"StateId":0,"StateName":"beijing","ShortName":"bij","IsActive":true,"CountryId":28,"errors":[],"CountryName":"China"}}
我正在尝试分配一个新的StateName,如下所示:
1. ko.utils.parseJson(args).argBO[StateName] = 'Assasw';
2. ko.utils.parseJson(args).argBO.StateName = 'Assasw';
3. ko.utils.parseJson(args).argBO.StateName('Assasw');
不行!你能告诉我问题出在哪里以及我该如何解决?
更新
var stateModel = {
StateId: ko.observable(0),
StateName: ko.observable('').extend({ required: true }),
ShortName: ko.observable('').extend({ required: true }),
IsActive: ko.observable(true),
CountryId: ko.observable().extend({ required: true })
}
var args = JSON.stringify({ argBO: jQuery.parseJSON(ko.toJSON(stateModel)) });
答案 0 :(得分:0)
主要问题是,每次为解析的对象分配新值都不会保存值!你需要:
您可以使用JavaScript中许多可能的符号之一访问和更改解析后的对象值
object["propertyName"] = value
:
此代码将属性值更改为New York
:
var argbo = ko.utils.parseJson(args).argBO;
argbo["StateName"] = "New York";
alert(argbo["StateName"]);