私はknockoutjsのviewmodelを持っている:外部jquery .ajax呼び出しからビューモデルのobservableArrayを参照するにはどうすればよいですか?このように定義された
function TestViewModel() {
var self = this;
self.matches = ko.observableArray([]);
self.selectedItem = ko.observable(self.matches()[0]);
self.SelectMatch = function (match) {
self.selectedItem(match);
};
self.setMatchList = function (_data) {
self.matches(_data);
};
}
私はまた、ストレートJavaScriptを使用して、クリックイベントから呼び出される機能がある - なしknockoutjsデータバインディング関与を。スクリプトは、そのように、サーバからのJSON配列をretreives:
$.ajax({
type: 'post',
contentType: "application/json; charset=utf-8",
url: "/FindMatches",
timeout: 10000,
data: JSON.stringify({ firstname: $("#Person_ProperFirstname").val(), lastname: $("#Person_ProperLastname").val(), gender: $("#Person_Gender").val().substring(0, 1) }),
success: function (results) {
if (results.length < 1) {
//setErrorMessage("No matches were found.");
}
else {
//setErrorMessage("");
$.each(results, function (item) {
TestViewModel.matches.push(item);
});
$("#parent_dialog").dialog("open");
}
は、今私は、サーバーから返された結果と私のviewmodel上の一致をobservableArray更新したいが、私はこれを行う方法を考え出すのトラブルを抱えています。あなたは上記のスクリプトで何を参照してくださいに加えて、私も次のことを試してみた:
else {
TestViewModel.matches(results);
}
//also this
else {
TestViewModel.setMatchList(results); }
任意の助けいただければ幸いです。