ERROR: using Getjson knockout

Asked

Viewed 105 times

1

FILE . ASPX

 <head>         
            <script src="scripts/jquery-1.4.4.js"></script>
            <script src="scripts/knockout-3.1.0.js"></script>
            <script src="scripts/jquery-1.4.4.min.js"></script>

               <script type="text/javascript">
                   function CarregarProdutos() {
                       var self = this;
                       $.getJSON("Json/Produtos.js", null, function (data) {
                               self.Nome = ko.observable(data.Nome[0]);
                               self.Quantidade = ko.observable(data.Quantidade[0]);
                               self.Valor = ko.observable(data.Valor[0]);
                           }
                        );
                   }
                   ko.applyBindings(new CarregarProdutos());
            </script>
    </head>
    <body>
            <form id="form1" runat="server">
                <table>
                    <tr>
                        <th>Nome</th>
                        <th>Quantidade</th>
                        <th>Valor</th>
                    </tr>
                    <tbody><tr>
                            <td data-bind="text: Nome"></td>
                            <td data-bind="text: Quantidade"></td>
                            <td data-bind="text: Valor"></td>
                    </tr></tbody>
                </table>
            </form>
        </body>  

ARCHIVE.JS - JSON

[{  /// 1
        "Nome": "Arroz", 
        "Quantidade": "20",
        "Valor": "5.99" 
},
{  /// 2
        "Nome": "Feijao",
        "Quantidade": "4",
        "Valor": "2.99"
}]

When run does not work. Only the table header appears nothing more

  • You return an array of products and not 3 arrays of properties right? shouldn’t it be Data[0].Nome...

1 answer

1


Set the object and then perform the get

function CarregarProdutos() {
    var self = this;

    self.Nome = ko.observable();
    self.Quantidade = ko.observable();
    self.Valor  = ko.observable();

    $.getJSON("Json/Produtos.js", null, function (data) {
        self.Nome = ko.observable(data.Nome[0]);
        self.Quantidade = ko.observable(data.Quantidade[0]);
        self.Valor = ko.observable(data.Valor[0]);
    });
}

And make sure the data is returning in the correct format. Using your browser’s debug tools

Browser other questions tagged

You are not signed in. Login or sign up in order to post.