私はこのjsfiddle再帰的なテンプレートを試していますが、私は動的データレンダリングに固執しています。これまでのところ、私はjsfiddle例に従って、このテンプレートを持っているノックアウトの再帰配列
[Object
Children: Array[2]
EventCategory: Object
]
が、配列が子供を持っているかどうかを確認する方法:私のデータは次のようになりますか?
<script id="categoryTemplate" type="text/html">
//How to check if data has child and display the child to its parent?
<li>
<span data-bind="text: name"></span>
<ul data-bind="template: { name: 'categoryTemplate', foreach: children }"></ul>
</li>
</script>
HTMLレンダリング:
<ul data-bind="template: {name: 'categoryTemplate', foreach: $data.categoryRoot}"></ul>
ノックアウト配列をレンダリングする方法、結合?配列が子供を持っているかどうかを確認する方法
var categoryElement = function (name, children) {
var self = this;
self.children = ko.observableArray(children);
self.name = ko.observable(name);
}
var categoryModel = {
categoryRoot: ko.observableArray()
};
var viewModel = function() {
var me = this;
me.categoryRoot = ko.observableArray();
me.selectCategory = function() {
$.get('link-to-get-categories').then(function(response) {
var categoryData = [
//new categoryElement("Russia", [
// new categoryElement("Moscow")
//]),
new categoryElement(response.Data)
//me.categoryRoot(categoryData);
me.categoryRoot(response.Data);
});
}
}
ko.cleanNode($('#addEvent')[0]);
ko.applyBindingsWithValidation(new viewModel(), $('#addEvent')[0]);
それは無用だ、あなたのデータのスクリーンショットを投稿しないでください。あなたのデータを投稿してください。 – Tomalak
これはちょうど私のデータ構造が – naru
のように見えるだけですが、*実際のデータ*を貼り付けるのは、ブラウザコンソールの静的なスクリーンショットよりも無限に便利です。次回は、単にデータを投稿してください。 – Tomalak