Ошибка синтаксиса: невозможно проанализировать привязки с json - PullRequest
0 голосов
/ 27 марта 2020

Я только начинаю с Нокаута 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:

enter image description here

Данные, которые я собираюсь получить, выглядят так на Почтальоне:

enter image description here

Единственное различие, которое я вижу, это тип цифры c "Ano Atual".

Кто-нибудь знает, что я делаю не так?

Спасибо.

1 Ответ

1 голос
/ 29 марта 2020

Вы должны изменить это:

<td data-bind="text: Ano Atual"></td>
<td data-bind="text: Ano Anterior"></td>

... на эти:

<td data-bind="text: $data['Ano Atual']"></td>
<td data-bind="text: $data['Ano Anterior']"></td>

Это ужасно, но кажется быть путь к go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...