knockout: Uncaught TypeError: Object #<Object> has no method 'newCommentText'

javascript, knockout.js

Solution

Try this.

self.addComment = function(chat) {
   var newComment = { CourseItemDescription: self.newCommentText() };
   chat.CommentList.push(newComment);
   self.newCommentText("");       
};

Your this variable is not what you expect.

Hope this helps.

Problem

I have code like this in my view model: ``` function ChatListViewModel(chats) { var self = this; self.newCommentText = ko.observable(); self.addComment = function(chat) { var newComment = { CourseItemDescription: this.newCommentText() }; chat.CommentList.push(newComment); self.newCommentText(""); }; } ko.applyBindings(new ChatListViewModel(initialData)); ``` but I get this error when I try to add a new comment: any Ideas what I'm doing wrong? I looked at some knockout samples on the knockoutjs.com webpage and this is how they were doing it.

Original source