transclude是一个可选的参数。如果设置了,其值必须为true,它的默认值是false。嵌入有时被认为是一个高级主题,但某些情况下它与我们刚刚学习过的作用域之间会有非常好的配合。使用嵌入也会很好地扩充我们的工具集,特别是在创建可以在团队、项目、AngularJS社区之间共享的HTML代码片段时。
嵌入通常用来创建可复用的组件,典型的例子是模态对话框或导航栏。
我们可以将整个模板,包括其中的指令通过嵌入全部传入一个指令中。这样做可以将任意内容和作用域传递给指令。transclude参数就是用来实现这个目的的,指令的内部可以访问外部指令的作用域,并且模板也可以访问外部的作用域对象。为了将作用域传递进去,scope参数的值必须通过{}或true设置成隔离作用域。如果没有设置scope参数,那么指令内部的作用域将被设置为传入模板的作用域。只有当你希望创建一个可以包含任意内容的指令时,才使用transclude:true。嵌入允许指令的使用者方便地提供自己的HTML模板,其中可以包含独特的状态和行为,并对指令的各方面进行自定义。
相关文章
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
- AngularJS系统学习之Directive(指令)
- AngularJS学习笔记之directive—scope选项与绑定策略
- 前端笔记之JavaScript(四)关于函数、作用域、闭包那点事
- 《前端之路》之四 JavaScript 的闭包、作用域、作用域链
- [AngularJS] Angular 1.5 multiple transclude
- JavaScript之作用域与闭包总结
- 开启AngularJS 1.X的学习之路(1)
- AngularJS应用开发思维之1:声明式界面
- angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)