我想从现有viewModel解析特定元素并将其放入新数组中。在knockout.js viewmodel中存储特定元素
我有一个应用程序视图模型,它有大量的申请人信息。这就是所谓的以下列方式:
self.applications = ko.observableArray(@Html.Json(Model.ApplicationCompatibilities.Select(o => o.JsonForm)) || []);
因此,“应用程序”的对象中有几个元素如所示的连接的图像中的上方。
我想要做的是,我只想将“applicationKey”元素检索到一个新的数组中。所以我所做的就是:
self.previewApplication = ko.computed(function() {
return ko.utils.arrayFilter(self.applications(), function (i) {
return i.application.applicationKey;
});
});
我打算遍历“self.applications()”视图模型,并返回只有“application.applicationKey”。但我实际上这样做,得到的是:
我刚刚起步的新视图模型内相同的“应用程序”对象。 如何获得只有“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对象的唯一“一个”元素。
有没有简单的方法来做到这一点?为了更好的解释,我附上了截图。
请问在这种特殊情况下如何使用它? – Dukakus17
用'arrayMap'直接替换'arrayFilter',一切都保持不变。 'arrayMap'函数返回你想要映射项目的任何东西,在这种情况下是一个标量值。 –
谢谢!它现在有效。你能回答我的第二个连接问题吗?如果可能,请看看我的编辑。非常感谢! – Dukakus17