Я видел этот вопрос , и использование его метода выдает ошибку на консоли JS Uncaught SyntaxError: Unexpected token )
.
Я пытаюсь взять рекурсивный массив категорий, которые имеют свойство Children
, представляющее собой массив категорий, и построить их с помощью шаблона jquery. Каждый метод, который я пробовал, приводит к некоторой синтаксической ошибке. Я проверил, что объект правильно отображается в javascript (он поступает из MVC3, используя @Html.Raw(Json.Encode(Model.Categories))
, чтобы получить его в массив JS). Вот оригинальный класс csharp
public class CategoryTreeModel
{
public int Id { get; set; }
public string Name{ get; set; }
public bool Selected { get; set; }
public bool HasChildren { get { return Children.Count > 0; } }
public List<CategoryTreeModel> Children { get; set; }
}
Это оригинальный HTML, который вызывает первый уровень шаблона:
<ul class="nav" data-bind="template: {name: 'categories_template', foreach: categories}">
</ul>
и сам шаблон:
<script type="text/html" id="categories_template">
<li id="category_${Id}" class="category_header">${Name}
{{if $data.HasChildren }}
<ul data-bind='template: { name: "categories_template", foreach: Children}'>
</ul>
{/if}
</li>
Шаблон сработает, если я вырежу из него дочерний раздел, правильно отобразив первый уровень. Я получаю Uncaught SyntaxError: Unexpected token )
, когда использую код как есть. Что я делаю не так?