Using KnockoutJs templates with jQuery
- by balteo
I would like to end up with the following HTML in the DOM using jQuery and KnockoutJs templates:
<div class="messageToAndFromOtherMember" id="13">
    <span>the message</span> 
    <span>2012-12-02 14:05:45.0</span> 
</div>
I have started writing my KO template as follows:
<div class="messageToAndFromOtherMember"  data-bind="attr:{ id: messageId}">
    <span data-bind="text: message"></span> 
    <span data-bind="text: sendDateFmted"></span> 
</div>
Upon a successful ajax request, the following js is executed:
var messageViewModel = {
         message: response.message, 
         sendDateFmted: response.sendDateFmted, 
         messageId: response.messageId
     };
ko.applyBindings(messageViewModel);
Now I am not sure how and where to actually do the binding: since my message does not exist before the ajax request is complete and I can have as several messages...
Can anyone please suggest a solution?
EDIT: I have added this to the html page:
<div data-bind="template: { name: 'message-template', data: messageViewModel }"></div>
I now get the following js error:
  Uncaught Error: Unable to parse bindings. Message: ReferenceError:
  $messageViewModel is not defined; Bindings value: template: { name:
  'message-template', data: messageViewModel }