我想从现有的viewModel中解析特定元素,并将其放入新数组中。

我有一个应用程序viewModel,其中包含大量申请人信息。通过以下方式调用它:

 self.applications = ko.observableArray(@Html.Json(Model.ApplicationCompatibilities.Select(o => o.JsonForm)) || []);


javascript - 将特定的元素存储在kickout.js viewmodel中(数组)-LMLPHP

因此,“应用程序”对象中包含多个元素,如上图所示。

我想做的是,我只想将“ applicationKey”元素检索到新数组中。所以我所做的是:

            self.previewApplication = ko.computed(function () {
                return ko.utils.arrayFilter(self.applications(), function (i) {
                    return i.application.applicationKey;
                });
            });


我打算遍历“ self.applications()” viewModel并仅返回“ application.applicationKey”。但是我实际得到的是:

javascript - 将特定的元素存储在kickout.js viewmodel中(数组)-LMLPHP

我只是在新的viewModel中得到相同的“应用程序”对象。
如何获得仅包含“ application.applicationKey”的数组?

谢谢!请帮忙!

编辑:

现在可以使用!现在,我的viewModel.previewApplication()给了我一个applicationKey的列表。现在我要做的是,添加一个加载模态的链接。在该模式内,我想显示具有特定“ applicationKey”的特定“应用程序”

例如,到模态的链接将如下所示:

<a href="#" data-toggle="modal" data-target="#previewApplicantModal" data-bind="attr: { 'data-applicationKey': application.applicationKey }">
     Preview Application
</a>


因此,如果我检查链接的元素,它将具有新的数据绑定:

<a href="#" data-toggle="modal" data-target="#previewApplicantModal" data-bind="attr: { 'data-applicationKey': application.applicationKey }" data-applicationkey="abc976cfx">
    Preview Application
</a>


最后,我想遍历“应用程序”对象,并仅返回具有“ abc976cfx”作为其applicationKey的对象的“一个”元素。

有一个简单的方法吗?我附上了截图,以获取更好的解释。

javascript - 将特定的元素存储在kickout.js viewmodel中(数组)-LMLPHP

最佳答案

arrayFilter过滤数组,如果该项符合您的过滤条件,则函数返回true或false。您需要arrayMap代替。

10-07 14:06