简体   繁体   English

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

[英]How to bind property on parent object with knockoutjs?

I'm developing a application with knockout.js framework. 我正在使用knockout.js框架开发一个应用程序。 I have one viewmodel like that: 我有一个这样的viewmodel:

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()
        }

When I run my application, I obtain one exception like that: 当我运行我的应用程序时,我得到一个例外:

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'CountryCode' 0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'CountryCode'

Can you help me to resolve my problem? 你能帮我解决一下我的问题吗?

Thank you a lot, Marco 非常感谢,Marco

I resolved my problem using subscribing feature of knockout. 我使用淘汰赛的订阅功能解决了我的问题。

Now my code is like that: 现在我的代码是这样的:

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);
});

So I can change the value when CountryCode property is changed. 所以我可以在CountryCode属性更改时更改值。

Thanks 谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM