Я пишу элемент, который рекурсивно строит дерево меню из объекта JSON. Однако, когда функция вызывает саму себя, я получаю ошибку: this.buildMenu is not a function
Recursive Function Call Polymer
Вот buildMenu
buildMenu: function(items) {
var node = new Array();
items.forEach(function(elem,index,arr) {
node.push(elem.Name);
if (elem.SubBranch.length > 0) {
return this.buildMenu(elem.SubBranch); //error is here
}
});
return node;
}
оригинальный метод, который вызывает buildMenu
handleRes: function() {
this.response = this.$.categoryList.lastResponse;
this.menuItems = this.buildMenu(this.response);
//...
}
Я проверил, что данные там и правильно отформатирован , Если я прокомментирую рекурсивный вызов, я получаю первый уровень результатов. Таким образом, он работает в этом отношении.
Аргумент elem.SubBranch
, который вызывается в рекурсивном вызове, является массивом и полностью действителен, если это имеет значение.
Можете ли вы построить плункер, чтобы продемонстрировать проблему? –