2
这里是演示: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是一个模板,从演示究竟采取。在这里粘贴它太长了。一般来说 - 它应该采用这个模板并在函数中进行编译。
这里是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 2015-01-31 22:50:39
有了重点,是的 - DOM操作是必要的,但你应该限制这个指令,并且有一些关于自动对焦的例子和问题。为了避免头痛,不要在控制器中有任何与DOM操作相关的东西。 – 2015-01-31 23:09:30