मैंने this question देखा है, और इसकी विधि का उपयोग करके जेएस कंसोल Uncaught SyntaxError: Unexpected token)
पर एक त्रुटि फेंकता है।नॉकआउटजेएस और रिकर्सिव टेम्पलेट
मैं श्रेणियों की एक पुनरावर्ती सरणी लेने की कोशिश कर रहा हूं, जिसमें Children
संपत्ति है जो श्रेणियों की एक श्रृंखला है, और एक jquery टेम्पलेट का उपयोग करके उन्हें बाहर निकालें। मैंने कोशिश की हर विधि कुछ वाक्यविन्यास त्रुटि में परिणाम। मैंने सत्यापित किया है कि ऑब्जेक्ट जावास्क्रिप्ट में ठीक से दिख रहा है (यह एमवीसी 3 से आ रहा है, इसे @Html.Raw(Json.Encode(Model.Categories))
का उपयोग करके जेएस सरणी में प्राप्त करने के लिए)। यहाँ मूल कोई तिथि नहीं वर्ग है
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)
मिलता है। मैं क्या गलत कर रहा हूं?
ध्यान दें, यह knockout1.3 था, यह टेम्पलेट मॉडल को नॉकआउट 2.0 – Tyrsius