问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/11022829/knockout-uncaught-typeerror-object-object-has-no-method-newcommenttext