Я пытаюсь вложить некоторые шаблоны jQuery. Я знаю, что jQuery имеет синтаксис {{tmp, который я могу использовать, но это не сработает для меня, так как мне нужно использовать шаблон foreach нокаута. Как вы можете видеть ниже, у меня есть div, связанный с первым тегом скрипта. это мой первый шаблон, использующий синтаксис foreach нокаута для обхода наблюдаемого массива сообщений. внутри этого шаблона я пытаюсь поместить еще один div, связанный с другим шаблоном, который использует foreach нокаута, чтобы пройти через массив внутри каждого члена массива 'messages'. Это не работает. Я получаю ошибки JavaScript (например, «ожидаемый идентификатор»). Есть идеи, что я делаю не так?
<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", "e@t.com", "url")]),
messages: ko.observableArray([{
contact: 0,
ims: new ko.observableArray(["chat"])
}])
};