次のコードを使用して、.netWebAPIから返された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のマッピング例を使用ko.utils.parseJson
しようとすると、返されたJsonで使用するとnullになり、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}]