jQuery $.ajax
コールとKnockout JSを使用して生成されたページに添付ファイルのリストがあります。KnockoutでAjaxコール後にリストを更新するJS
私のHTMLは次のようになります(これはバック取り除かれる):
$(function() {
getFormAttachments();
});
function getAttachments() {
var request = $.ajax({
type: "GET",
datatype: "json",
url: "/Attachment/GetAttachments"
});
request.done(function (response) {
ko.applyBindings(new vm(response));
});
}
マイビューモデル:
<tbody data-bind="foreach: attachments">
<tr>
<td data-bind="text: Filename" />
</tr>
</tbody>
私は、JSONレスポンスとして返される添付ファイルのリストを取得する機能を持っています次のようになります。
このリストを更新するには、時間の添付ファイルが削除/追加された可能性があります上:添付ファイルのリストの最初のレンダリングは結構です
$(function() {
$("#refresh").on("click", getAttachments);
});
、しかし私は、リストをクリックして更新ボタンを経由して再びgetAttachments
を呼び出すときに、実際に(に追加された各項目があります複数回複製)。
私はここで、この問題を示すためにjsFiddleを作成しました:
私が間違って何をしているのですか?
Kev - nice post。私はまだそれで少し混乱しています。ノックアウトを初めて。私はページロード時にViewModelにAJAXデータをロードするだけで同様の問題を抱えています。私はちょっとした、真面目なことを欠いていると確信しています。私を混乱させる1つのチュートリアルでは、オブジェクトとして(例えば 'var viewmodel = {something:ko.observable()}')と他のものを 'viewModel'を関数として表示するチュートリアルがあります(関数ViewModel(){this.something = ko。observable()} ') - 任意の提案ですか? –
@ one.beat.consumer - フォローアップの質問を参照してください:http://stackoverflow.com/questions/9589419/difference-between-knockout-view-models-declared-as-object-literals-vs-functions - the以下のコメントは物事をより明確にするはずです。私は$ 25を費やしてこれを見てみることをお勧めします:http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=knockout-mvvm – Kev
あなたの他の質問をチェックします。ありがとうございました。私は複数のサブスクリプションを持っており、私はそれを2〜3回見てきました...彼らはほとんど表面を傷つけず、2.0が出ていて、多くの人は1.2,1.3のベータ版を使用していました... –