Как отобразить данные Knockoutjs.mapping в моем шаблоне?

Используя подключаемый модуль нокаута, как мне отобразить информацию и массив объектов JSON в моем шаблоне?

//Example JSON data.
JSON = [{'title':'title of first object', 
         'content':'content of first json object'}, 
         {'title':'title of second object', 'content': 'content of second json object'}]

var viewModel = ko.mapping.fromJS(data);

var data = $.getJSON('/post/.json', function(data) {
    ko.mapping.fromJS(data, viewModel);
});

Я могу получить доступ к объектам через viewModel() и viewModel()[0].title() с помощью консоли в Chrome, но не знаю, как привязать эту дату к моему шаблону.


person cryptojuice    schedule 01.03.2012    source источник


Ответы (1)


После того, как вы получите свои данные, вам нужно будет позвонить ko.applyBindings(viewModel).

В вашем HTML вы можете привязываться к своим данным, например:

<ul data-bind="foreach: $data">
     <li>
          <span data-bind="text: title"></span>: 
          <span data-bind="text: content"></span>
     </li>
</ul>

Вот пример: http://jsfiddle.net/rniemeyer/YkT6p/

person RP Niemeyer    schedule 01.03.2012
comment
Спасибо, RP, мне не хватало data-bind=foreach: $data. - person cryptojuice; 01.03.2012