20
これは簡単ですが、2時間後に頭が痛いです。observableArrayからの具体的な要素の取得
私はcategoryIndex(selectから)を持っており、そのIDを持つobservableArrayからカテゴリを取得したいと考えています。
どうすればいいですか?私はindexOfで試しました(しかし、どのように動作し、私はもちろんdocを見ました)、私はlinq.jsを試しましたが、Whereは使いにくいですか、Imは愚かです(私はカテゴリからIDを取得する方法がわかりませんそれを比較する)。
マイobservableArrayはこれです:だから
categories[category { Id=2, Name="Pink", ...}, category { Id=1, Name="Green", ...}]
私の指数は2
であれば、私はちょうどありがとう「ピンク」のカテゴリを取得するために、一つの方法が必要です。
EDIT:
viewModel.addNote = function() {
var selectedCategoryIndex = $("#Categories").val();
var selectedCategory = ko.utils.arrayFirst(this.categories(), function(item) {
return item.Id === selectedCategoryIndex;
});
}.bind(viewModel);
おかげで、あなたはナンバーワンです。しかし、私はnullになっています。私はコードを編集しました。 selectedCategoryIndexは正常ですが、正しいIDを持っていますがselectedCategoryはnullのようです。 Btw、なぜ火かき棒はノックアウトで正しく動作しないのですか? this.categories()は空であると言いますが、新しいvarにその変数を代入すると、firebugはobservableArrayではなく新しいvarのデータを見ることができます。 –
私の推測ではitem.Idは2で$( "#Categories")です。val()は "2"です。結果にparseIntを実行するか、===の代わりに==を使用することができます。あなたのビューモデルでその値を追跡するのではなく、要素のval()を読んでいる理由はありますか? –
Ouch、JS 1、私0。私はデスクトップ開発者もいくつかのWeb開発者を学ぼうとしています。私はhtmlヘルパー(ASP.NET MVC)とノックアウトに悪い経験をしていたので、ノックアウトを使ってDropDownListを追跡していません。再度、感謝します。 –