Вот демонстрация: https://jimliu.github.io/angular-ui-tree/, но как насчет ситуации, когда вы удаляете все текущие узлы и хотите создать самый первый узел?Создание самого первого узла в угловом дереве
До сих пор у меня есть что-то вроде этого:
<a href="" ng-click="createFirstChapterInput()"><span class="glyphicon glyphicon-circle-arrow-right"></span> New chapter</a>
<div class="row">
<div class="col-lg-12">
<div ui-tree id="tree-root">
<ol ui-tree-nodes ng-model="chapters">
<li ng-repeat="chapter in chapters" ui-tree-node ng-include="'nodes_renderer'"></li>
</ol>
</div>
</div>
nodes_renderer шаблон, взятая именно из демки. Это слишком долго, чтобы вставить его здесь. Вообще говоря - это shouse принять этот шаблон и скомпилировать его в функции.
Вот функция createFirstChapterInput
:
$scope.createFirstChapterInput = function() {
$scope.chapter = {};
Restangular.copy({route: Chapters.url}, $scope.chapter);
$scope.chapter['name'] = null;
var result = $('<li>' + $('#nodes_renderer').html() + '</li>');
$('#tree-root').find('ol').prepend(result);
$compile(result)($scope);
result.find('input.new').focus();
}
Но хорошо, она заканчивается на ошибку:
'uiTreeNode' контроллера, требуется в соответствии с директивой 'uiTreeHandle', не может можно найти!
Я не знаю, как передать этот контроллер в область видимости, поэтому компиляция увидит его. Также я не уверен, подходит ли код для этого или есть лучшее решение.
Холл дерьмо , Ты совершенно прав! Но есть такие незначительные проблемы, как, например, когда я хочу сосредоточиться на вводе, который создается после того, как я нажимаю новую главу на массив глав, тогда я думаю, что jQuery и это способ мышления необходим, не так ли? – mmmm
С фокусировкой да - требуется манипуляция DOM, но вы должны ограничить это директивами, и есть несколько примеров и вопросов онлайн об автоматической фокусировке. Чтобы избавиться от головных болей, НЕ имейте ничего, что связано с манипуляциями с DOM в контроллерах. –