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

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


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

当我尝试

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


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

这是摆弄代码
http://jsfiddle.net/qafrD/

最佳答案

这是因为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/

10-06 07:55