我试图嵌套一些jQuery模板。我知道jQuery有我可以使用的{{tmp语法,但是这对我来说不起作用,因为我需要使用淘汰赛的foreach模板。正如你在下面看到的,我有一个绑定到第一个脚本标签的div。这是我的第一个模板,使用knockout的foreach语法来遍历可观察的消息数组。在那个模板里面,我试图把另一个div绑定到另一个使用knockout的foreach循环遍历'messages'数组中每个成员的数组的模板。它不工作。我得到的JavaScript错误(如“预期的标识符”)。任何想法我做错了什么?巢淘汰赛foreach模板
<div data-bind="template: {name: 'contactIMSTemplateContent', foreach:messages}"></div>
<script id="contactIMSTemplate" type="text/html">
<span class="tabTop">${viewModel.contacts()[$data.contact].name()}</span>
</script>
<script id="contactIMSTemplateContent" type="text/html">
<div class="tabContentIM" >
<div data-bind="template: {name:'IMSTemplate', foreach:${viewModel.messages()[$data.contact].ims}}" ></div>
</div>
</script>
<script id="IMSTemplate" type="text/html">
<div class="message"><span class="messageFrom">${viewModel.contacts()[0].name()}</span> ${$data}</div>
</script>
我的视图模型看起来像:
var viewModel = {
contacts: ko.observableArray([new contact("Contact Name", "contact status", "busy", "[email protected]", "url")]),
messages: ko.observableArray([{
contact: 0,
ims: new ko.observableArray(["chat"])
}])
};
你可以发布你的viewModel的样子吗? – 2011-04-23 21:10:06
哎呀,忘了。在这里: VAR视图模型= {联系人:ko.observableArray([新联系人( “联系人姓名”, “联系人状态”, “忙碌”, “[email protected]”, “URL”)),\t消息:KO .observableArray([{contact:0,ims:new ko.observableArray([“chat”])}]) \t};如果可能的话, – 2011-04-23 21:17:40
可能会编辑问题并添加它。 – 2011-04-23 21:20:31