特定の要素を既存のviewModelから解析して新しい配列に入れたいと思っています。特定の要素をknockout.jsに保存するviewmodel(array)
私は、申請者の膨大な情報を持っているアプリケーション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()」ViewModelにのみ「application.applicationKey」を返すをループすることを意図し。しかし、私は実際にそれを行うことにより、取得することです:私はちょうど新しい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>
は、最後に私は、「アプリケーション」オブジェクトをループにしたいし、そのapplicationKeyとして「abc976cfx」を持つオブジェクトの唯一の「1」の要素を返します。
これを行う簡単な方法はありますか?私は説明のためにスクリーンショットを添付しました。
この特定のケースで使用する方法を教えてください。 – Dukakus17
'arrayFilter'を' arrayMap'に置き換えると、それ以外は同じままです。 'arrayMap'のための関数はあなたが項目にマップしたいものを返します。この場合はスカラー値です。 –
ありがとう!それは今働く。あなたは私の2番目の接続の質問に答えることができますか?可能であれば、私の編集を見てください。どうもありがとうございます! – Dukakus17