Я только начинаю с Нокаута JS, и мне трудно найти, что здесь не так. Я вызываю веб-службу контроллера, чтобы получить некоторые данные, которые я хочу отобразить на своей странице.
Это моя ViewModel:
function ViewModel() {
var self = this;
self.MonthSalesList = ko.observableArray();
var url = 'myurl';
self.GetQueryData = function () {
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function (data) {
console.log('callback success');
console.log(data);
var observableData = ko.mapping.fromJS(data);
var array = observableData();
self.MonthSalesList(array);
},
error: function (jq, st, error) {
alert(error);
}
});
}
}
$(document).ready(function () {
ko.applyBindings(new ViewModel());
});
И в html:
<body>
<table>
<thead>
<tr>
<th>Year</th>
<th>Mes</th>
<th>Ano Atual</th>
<th>Ano Anterior</th>
<th>Variação</th>
</tr>
</thead>
<tbody data-bind="foreach: vendasMesList">
<tr>
<!-- <td data-bind="text: ko.toJSON($data)"></td> -->
<td data-bind="text: Year"></td>
<td data-bind="text: Mes"></td>
<td data-bind="text: Ano Atual"></td>
<td data-bind="text: Ano Anterior"></td>
<td data-bind="text: Variação"></td>
</tr>
</tbody>
</table>
<br/>
<input type="button" value="Get Sales" data-bind="click: GetQueryData" />
</body>
Когда я загружаю страницу и нажимаю «Получить продажи», я получаю только первые значения данных json:
Данные, которые я собираюсь получить, выглядят так на Почтальоне:
Единственное различие, которое я вижу, это тип цифры c "Ano Atual".
Кто-нибудь знает, что я делаю не так?
Спасибо.