【发布时间】:2012-03-04 14:54:24
【问题描述】:
我有一个像这样定义的 knockoutjs 视图模型:
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 数组,如下所示:
$.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");
}
现在我想使用从服务器返回的结果更新我的视图模型上的匹配 observableArray,但我无法弄清楚如何执行此操作。除了您在上述脚本中看到的内容外,我还尝试了以下内容:
else {
TestViewModel.matches(results);
}
//also this
else {
TestViewModel.setMatchList(results); }
任何帮助将不胜感激。
【问题讨论】:
标签: knockout.js