我想從現有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