Plunker Solution here
Вам необходимо изменить кнопку подменю разметки передать ссылку на элемент меню, кнопка пребывает в:
<ul class="sub-menu">
<li ng-repeat="menuItem in menuItem.children" ng-include="'sub-tree-renderer.html'"></li>
<button class="btn btn-warning" style="margin-top: 10px;" ng-click="addSubItem(menuItem)">Add Sub Menu Item</button>
</ul>
, а затем в вашей функции addSubItem действуют непосредственно на элемент, например th является:
$scope.addSubItem = function(item) {
item.children.push({
name: 'Sub' + (item.children.length + 1)
});
};
Также убедитесь, что каждый раз, когда вы создаете новый элемент массива детей определяется как пустой массив вместо того неопределенными:
$scope.addItem = function() {
$scope.menuItems.push({
name: 'Test Menu Item',
children: []
});
};
Я бы рекомендовал использовать значение объекта данных, которые вы можете построить новый элемент вместо того, чтобы использовать литералы с напечатанными буквами вручную, как если бы вы использовали их во многих местах, легко ошибиться и вызвать ошибки, которые происходят только в некоторых местах и требуют много времени для поиска.
Спасибо вам :) – kipris