2014-02-06 5 views
0

У меня есть объект json, возвращаемый через jquery ajax из службы asmx. Когда я пытаюсь отобразить его в таблице, ничего не отображается. Что я могу сделать неправильно?отображение вложенных массивов в knockout.js

Заранее спасибо.

Возвращенный JSON является ...

[{\"id\":1488,\"name\":\"Baby Books\", 
    \"categories\": 
    [{\"id\":152,\"name\":\"Activity Books\",\"value\":\"Ignore\"}, 
    {\"id\":167,\"name\":\"Bedtime and Dreams\",\"value\":\"Ignore\"}]}, 
{\"id\":1489,\"name\":\"Story Books\", 
    \"categories\": 
    [{\"id\":1506,\"name\":\"Games - Floor Puzzles\",\"value\":\"Ignore\"}]}] 

код дисплея JS есть (где gorupJson возвращается из вызова) ...

var viewModel = { 
    groups: ko.observableArray([]), 
}; 
viewModel.groups(groupJson) 
ko.applyBindings(viewModel); 

содержание страницы ...

<table width="100%" > 
<tbody data-bind="foreach: groups" style="width:100%"> 
    <tr> 
    <td data-bind="text: name"></td> 
    <td> 
    <ul data-bind="foreach: categories"> 
     <li> 
     <a><span data-bind="text: name"></span></a> 
     </li> 
    </ul> 
    </tbody> 
</table> 

ответ

0

Ваш json не будет автоматически преобразован в коллекцию ko. Итак, вам нужно применить сопоставление для этого преобразования, вероятно, это ko.mapping.fromJS (данные). Когда вы это сделаете, ваши поля ID, имя, значение будет в ko.observable

Если вы хотите узнать больше о отображения плагина в нокауте, посмотрите на http://knockoutjs.com/documentation/plugins-mapping.html

0

Во-первых, ваш JSON является недействительным. Проверьте скрипку: http://jsfiddle.net/YNdmh/

var groupJson = [{"id":1488,"name":"Baby Books","categories": 
    [{"id":152,"name":"Activity Books","value":"Ignore"}, 
    {"id":167,"name":"Bedtime and Dreams","value":"Ignore"}]}, 
    {"id":1489,"name":"Story Books","categories": 
    [{"id":1506,"name":"Games - Floor Puzzles","value":"Ignore"}]}] 
0

Вы недостающую закрывающие теги для <td> и <tr>

Слеши в JSON должны идти как хорошо.

http://jsfiddle.net/yhBvr/

+0

Спасибо всем ... Я теперь перешел к возвращающийся вебсервис error- JSON ugggh. – BedfordNYGuy

Смежные вопросы