我已经找到了一些有关这方面的答案,但一直没能把它们放在一起。第一天使用淘汰赛,所以请让我知道如果我正在考虑它完全错误!forEach with KnockoutJS中的对象属性
我想代表我有的评论列表。该意见包含多种属性,例如{文字:......,得分:...,...}
我明白,我有一个视图模型
var MatchupViewModel = function(comments) {
this.comments = ko.observableArray(comments);
}
ko.applyBindings(new MatchupViewModel(comments), document.getElementById("leftchat"));
而且据我所知,在foreach看起来有点像这样:
- 在玉(我使用的:
#leftchat.chat(data-bind="forEach: comments")
.fullMessage
.content
p.textcontent(data-bind="text: text, visible: text")
img.imagecontent(data-bind="visible: isImage, attr={src: url}")
.scorecontainer
.buttonContainer
p.likeButtonMessage(bind-data="click=voteComment(id, true)") ▲
p.dislikeButtonMessage(bind-data="click=voteComment(id, false)") ▼
p.messageScore(data-bind="text: score")
转换为HTML:
<div id="leftchat" data-bind="forEach: comments" class="chat">
<div class="fullMessage">
<div class="content">
<p data-bind="text: text, visible: text" class="textcontent"></p><img data-bind="visible: isImage, attr={src: url}" class="imagecontent"/>
</div>
<div class="scorecontainer">
<div class="buttonContainer">
<p bind-data="click=voteComment(id, true)" class="likeButtonMessage">▲</p>
<p bind-data="click=voteComment(id, false)" class="dislikeButtonMessage">▼</p>
</div>
<p data-bind="text: score" class="messageScore"></p>
</div>
</div>
</div>
它抱怨说,文字是不是一个功能,这是我曾希望它本来可以在属性找到。我如何解决这个问题?
它会更容易帮助你,如果我们看到一个例子“注释”对象是什么样子。请注意,您有两个拼写错误的绑定数据,而不是数据绑定。 – Tyblitz
谢谢! - 现在评论看起来是这样的: {text:String,src:String,isImage:Boolean,src:String,score:Number} –