【发布时间】:2012-08-29 09:28:49
【问题描述】:
我可以使用以下代码将从 .net WebAPI 返回的 JSON 绑定到淘汰视图模型。
function viewModel() {
var self = this;
self.temps = ko.observableArray([]);
}
$(function () {
var model = new viewModel();
$.get('../api/Temp/', function (data) {
model.temps(data);
});
ko.applyBindings(model);
});
当我尝试使用 Ryan Niemeyer 's mapping example 时,我在返回的 Json 上使用 ko.utils.parseJson 时得到空值,而当我尝试直接使用 ko.utils.arrayMap 时,我得到未定义。
如果我尝试以下操作,我也很难将 get 请求放入单独的函数中,我的数据绑定停止工作
function dataFromServer() {
$.get('../api/Temp/', function (data) {
return data;
});
}
$(function () {
var model = new viewModel();
var data = dataFromServer();
model.temps(data);
ko.applyBindings(model);
});
从服务器返回的 JSON:
[{"Id":1,"Name":"Test1","TypeId":100,"Temp":21.0,"Peak":true},{"Id":2,"Name":"Test2","TypeId":100,"Temp":21.0,"Peak":true},{"Id":3,"Name":"Test3","TypeId":101,"Temp":21.0,"Peak":true}]
【问题讨论】:
-
能否请您添加从服务器返回的 JSON。
-
您没有为
data变量分配任何东西,对吧?它甚至没有定义。 -
我在我的代码中,一定是在重写问题时迷失了方向。我现在已经将它分配给一个变量,也尝试了一些变体。
标签: knockout.js asp.net-web-api