Отображение иерархии (дерева) с помощью knockoutjs

У меня есть дерево объектов в моем представленииModel. Объекты примерно такие:

function Node() {
    var self = this;
    self.otherNodes = ko.observableArray([]);
    self.moreNodes = ko.observableArray([]);
}

Итак, в viewModel есть корень node, заполненный node объектами в корневых объектах, двумя массивами. Эти узлы, в свою очередь, могут иметь больше узлов в своих массивах произвольно глубоко.

Мне сложно отобразить эту структуру данных в моем представлении. Дерево всегда предлагает рекурсию для меня, но я не уверен, как это сделать с помощью knockoutjs. Какие-либо предложения?