【问题标题】:How to bind property on parent object with knockoutjs?如何使用 knockoutjs 绑定父对象的属性?
【发布时间】:2016-06-18 10:18:57
【问题描述】:

我正在开发一个带有 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 运行时错误:对象不支持属性 或方法“国家代码”

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

非常感谢, 马可

【问题讨论】:

  • 什么是this?你检查过吗?它可能不是你想象的那样......
  • 检查类似的问题,你可能没有正确包含一些脚本stackoverflow.com/questions/27263635/…
  • 我检查了,这是窗口对象。有没有办法获取特定属性?

标签: javascript knockout.js computed-observable


【解决方案1】:

我使用subscribing feature of knockout 解决了我的问题。

现在我的代码是这样的:

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 属性更改时更改值。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 2016-01-22
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多