如何将选定值传递给可观察数组中的匿名函数?

How do I pass a selected value to an anonymous function within an observable array?

我正在尝试将所选值从 select option binding 传递到计算的可观察数组,但出现 undefined 错误:我可以在视图模型中访问此值吗?

我需要传递选定的值(ArtistId)以便我可以显示专辑列表中的数据:

如果我只是硬编码一个值,它就可以工作。

示例:

    self.albumList = ko.computed(function () {
        return ko.utils.arrayFilter(discography(), function (item) {

            // Pass Selected Artist ID here instead of hard coding.

            return item.ArtistId === '1';

        });
    }); 

这是一个有效的 JSFiddle:

计算的可观察对象可以访问任何其他可观察对象。所以你需要访问 selectedArtist observable:

self.albumList = ko.computed(function () {
    if (self.selectedArtist()) {
        return ko.utils.arrayFilter(self.discography(), function (item) {
            return item.ArtistId === self.selectedArtist().ArtistId;
        });
    }
});

https://jsfiddle.net/4djkngfy/2/