私のモデルには、アイテムのコレクションを含むフィールドが 1 つあります。この特定のモデルにバインドされているビューから、jquery からそのコレクションにアクセスしたいと考えています。
どうすればこれを達成できますか?
私のモデルには、アイテムのコレクションを含むフィールドが 1 つあります。この特定のモデルにバインドされているビューから、jquery からそのコレクションにアクセスしたいと考えています。
どうすればこれを達成できますか?
ここにそれを行うための巧妙な方法があります。foreach ループを介して JSON データ オブジェクトを構築します。ajax 呼び出しを介してデータをロードする方が良いでしょうが、それは別の日の別のソリューションです。
ここでは、少なくとも Id プロパティと Name プロパティを持つアイテムのコレクションがあると仮定します。JSON では最後の項目の末尾に追加の「,」を実際に許可しないため、@foreach ループを私のものよりも少し良くする必要があります。
var data = [
@foreach (var item in Model.MyCollection)
{
<text>{"key":"@item.Id", "value":"@item.Name"},</text>
}
];
$.each(data, function(i) {
alert(data[i].key + ": " + data[i].value);
});
私はこのようなことをしますが、それがどれほど「正しい」かはわかりませんが、機能し、私には理にかなっています。
var view = Backbone.View.extend({
el: $('window'),
render: function() {
var that = this;
var model = new myModel();
model.fetch({
success: function({
that.dataModel = model;
});
});
}
});
そして、this.dataModelを実行できる場所ならどこでも、それはあなたのモデルでなければなりません