有一些流行的递归角度指令Q & A在那里。 优雅的解决方案是将抽象的递归功能整合到一个服务 而在指令称之为“编译”阶段:Angular 1.5组件的递归
什么是最好的办法,如果我想用同样的概念在新角1.5 .component()而不是.directive()?
有一些流行的递归角度指令Q & A在那里。 优雅的解决方案是将抽象的递归功能整合到一个服务 而在指令称之为“编译”阶段:Angular 1.5组件的递归
什么是最好的办法,如果我想用同样的概念在新角1.5 .component()而不是.directive()?
组件应该比指令更严格(对于简单的指令)。
他们不公开compile
功能。
这是从docs:
当不使用组件:
对于依赖于DOM操作指令,将事件监听器等,因为编译和链接功能不可用 当你需要高级指令定义选项,如优先级,终端,多元素 ,当您需要由属性或CSS类触发的指令时,而不是元素
换句话说 - 组件不会替换指令,它们继承它们使得构建简单指令变得更容易。你仍然可以使用指令来完成任务。它们是而不是已弃用。
不确定混淆是什么......这非常简单。下面是一个递归组件的例子。
angular
.module('app', [])
.component('recursed', {
template: [
'<div class="container">',
'<div>Contains {{$ctrl.depth}} layers</div>',
'<recursed depth="$ctrl.depth-1" ng-if="$ctrl.depth"></recursed>',
'</div>'
].join(''),
bindings: {
depth: '<'
}
})
.container {
padding: 5px;
border: 1px solid #ececec;
border-radius: 4px;
}
<script src="//unpkg.com/[email protected]/angular.js"></script>
<div ng-app="app">
<h1>Recursion</h1>
<recursed depth="5"></recursed>
</div>
这是一个有点过于宽泛的一个问题......你应该尝试一下在1.5和看看你的想法。而你有特定的问题,在这里问:)。 – ajmajmajma
@ajmajmajma我不明白2件事:1)为什么你给我倒下了。 2)如果你理解我的问题。 1.5 .component()没有'编译'... 我想我是beeing在我的问题 –
我没有downvote,但有很多方法来实现递归通过指令或组件,因此这是一个广泛的并可能基于观点的问题。你应该至少给它一个镜头,并显示代码是否有问题或疑问。 – ajmajmajma