以下是相关代码:
<div data-bind="foreach: chats, visible: chats().length > 0">
<input data-bind='value: $parent.newCommentText' />
<a href="#" data-bind='click: $root.addComment'>Add comment</a>
</div>
视图模型:
self.newCommentText = ko.observable()
self.addComment = function(chat) {
var newComment = { CourseItemDescription: self.newCommentText(), };
chat.CommentList.push(newComment);
self.newCommentText("");
$.ajax({
url: "@Url.Action("AddComment")",
data: ko.toJSON(newComment),
type: "post",
contentType: "application/json"
});
};
问题是,这会将我输入的内容放在所有其他文本框的一个文本框中。我怎样才能使它只绑定到用户输入的文本框并将该数据提供给addComment函数?
答案 0 :(得分:1)
如果您希望每个聊天都能够添加自己的评论字段,那么您可能希望将newCommentText
字段添加到chat
对象而不是父对象。然后,您可以阅读它并将其从传递给chat
的{{1}}对象中清除。
答案 1 :(得分:0)
我需要将newCommentText放在聊天数组中。
因此代码将成为
self.addComment = function(chat) {
var newComment = { CourseItemDescription: chat.newCommentText(), };
chat.CommentList.push(newComment);
chat.newCommentText("");
...
};