これは簡単に思えますが、2時間後に頭が痛くなります。
(selectからの)categoryIndexがあり、そのIDを持つobservableArrayからカテゴリを取得したいと思います。
どうすればいいですか? indexOfを試してみました(ただし、どのように機能するかわからないので、もちろんドキュメントを確認しました)、linq.jsを試してみましたが、どこが使いにくいか、または愚かです(カテゴリからIDを取得する方法がわかりません)そしてそれを比較します)。
私のobservableArrayはこれです:
categories[category { Id=2, Name="Pink", ...}, category { Id=1, Name="Green", ...}]
したがって、インデックスが2の場合、「ピンク」カテゴリを取得する方法が1つ必要です。
ありがとうございました。
編集:
viewModel.addNote = function() {
var selectedCategoryIndex = $("#Categories").val();
var selectedCategory = ko.utils.arrayFirst(this.categories(), function(item) {
return item.Id === selectedCategoryIndex;
});
}.bind(viewModel);
私は通常、KOユーティリティ関数を使用しますko.utils.arrayFirst
この種のことをする。配列をループして、渡された述語に一致する最初の項目を返します。
あなたはそれをこのように使うでしょう:
selectedId = 2;
var category = ko.utils.arrayFirst(categories(), function(category) {
return category.Id === selectedId;
});