繁体   English   中英

KnockoutJS-可计算的和js对象

[英]KnockoutJS - computed abservable and js object

我试图返回一个可观察的属性,但似乎缺少了一些东西。

self.SelectedAccountTypeID = ko.computed(function () {
    return self.selectedAccountType.AccountTypeID();
}); 

我正在尝试返回selectedAccountType的AccountTypeID属性,但这不起作用

当我尝试

self.SelectedAccountTypeID = ko.computed(function () {
    return self.selectedAccountType();
}); 

它有效,但返回一个javascript对象

这是一个带有代码http://jsfiddle.net/qafrD/的小提琴

您处于正确的轨道,因为您的selectedAccountType是可观察的,因此您需要使用selectedAccountType()访问其值

因此,正确的语法为: self.selectedAccountType().AccountTypeID;

但是,由于self.selectedAccountType()可以为null,因此您需要先检查它,然后才能访问该AccountTypeID上的AccountTypeID

self.SelectedAccountTypeID = ko.computed(function () {
    if (self.selectedAccountType())
        return self.selectedAccountType().AccountTypeID;
});    

演示小提琴

这是因为self.selectedAccountType是一种可观察的含义,您需要像调用函数一样调用它以检索其当前值。 但是,“ AccountTypeID”属性不是可观察到的,因此在此不需要括号。

self.SelectedAccountTypeID = ko.computed(function () {
    // Retrieve the value of the observable
    var selectedAccountType = self.selectedAccountType();

    // The value may be "undefined" or "null" if there has not yet been
    // anything stored in the observable
    if (selectedAccountType && typeof selectedAccountType.AccountTypeID != "undefined") {
        return selectedAccountType.AccountTypeID;
    }

    // Return a default value otherwise
    return null;
});

演示: http//jsfiddle.net/qafrD/1/

暂无
暂无

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

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