如何用knockoutjs绑定父对象的属性?

时间:2016-03-04 15:45:20

标签: javascript knockout.js computed-observable

我正在使用knockout.js框架开发一个应用程序。我有一个这样的视图模型:

var MyViewModel= {
    Id: ko.observable(),
    CountryCode: ko.observable(),
    NormalizedAddress:
        {
            COUNTRY_CODE: ko.computed(function () { return this.CountryCode(); }),
            Street: ko.observable(),
            ZipCode: ko.observable(),
            AreaCode: ko.observable(),
            Town: ko.observable(),
            Description: ko.observable()
        }

当我运行我的应用程序时,我得到一个例外:

  

0x800a01b6 - JavaScript运行时错误:对象不支持属性   或方法' CountryCode'

你能帮我解决一下我的问题吗?

非常感谢, 马可

1 个答案:

答案 0 :(得分:0)

我使用subscribing feature淘汰赛解决了我的问题。

现在我的代码是这样的:

var MyViewModel= {
    Id: ko.observable(),
    CountryCode: ko.observable(),
    NormalizedAddress:
        {
            COUNTRY_CODE: ko.observable(),
            Street: ko.observable(),
            ZipCode: ko.observable(),
            AreaCode: ko.observable(),
            Town: ko.observable(),
            Description: ko.observable()
        }
}

MyViewModel.CountryCode.subscribe(function (newValue) {
    MyViewModel.NormalizedAddress.COUNTRY_CODE(newValue);
});

所以我可以在更改CountryCode属性时更改值。

由于