设置javascript对象的属性值

时间:2014-05-16 06:07:00

标签: javascript

我无法为包含一些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)) });

1 个答案:

答案 0 :(得分:0)

主要问题是,每次为解析的对象分配新值都不会保存值!你需要:

  • 解析您的对象
  • 更改值
  • 保存当前对象状态(或覆盖现有对象)

您可以使用JavaScript中许多可能的符号之一访问和更改解析后的对象值

object["propertyName"] = value

此代码将属性值更改为New York

var argbo = ko.utils.parseJson(args).argBO;
argbo["StateName"] = "New York";
alert(argbo["StateName"]);