我有posts
的observableArray。每个帖子都应该有可观察的评论,这是我这样做的:
self.posts.subscribe(posts) {
ko.utils.arrayForEach(posts, function(post) {
post.comments = ko.observableArray()
})
}
所以我有两个foreachs:
<!-- ko foreach: posts -->
<div class="post">
...
<!-- ko forech: comments -->
<div class="comment">
<span class="delete_comment" data-bind="click: $root.deleteComment"></span>
</div>
<!-- /ko -->
<!-- /ko -->
在我的viewmodel中,deleteComment
函数:
self.deleteComment = function(comment) {
//ajax..
// now i should remove this comment from the comments array
}
这里的问题是我无法找到从comments数组中删除注释的方法。我无法从viewmodel访问comments数组,因为它是动态创建的。我试图在data-bind中绑定父:
<span class="delete_comment" data-bind="click: $root.deleteComment.bind($parent)"></span>
但是没有区别,deleteComment
中的第一个参数仍然是评论对象。如何从deleteComment
内部访问外部observableArray?
答案 0 :(得分:0)
但是没有区别,deleteComment中的第一个参数仍然是注释对象。
您的dataGridView1.ClearSelection();
更改了bind
函数中this
的内容,而不是第一个参数。如果deleteComment
中的其他内容不需要this
,那么您可以使用deleteComment
。
或者,当然,让帖子负责删除他们的评论,而不是根模型。