惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
A
About on SuperTechFans
量子位
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
U
Unit 42
D
DataBreaches.Net
博客园 - Franky
D
Docker
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog

博客园 - 开发手游啦啦啦

用TypeScript开发爬虫程序 ABP导航源码分析 ABP的语言切换 AngularJs自定义指令详解(10) - 执行次序 AngularJs自定义指令详解(9) - terminal AngularJs自定义指令详解(8) - priority AngularJs自定义指令详解(7) - multiElement AngularJs自定义指令详解(6) - controller、require AngularJs自定义指令详解(5) - link AngularJs自定义指令详解(3) - scope AngularJs自定义指令详解(2) - template AngularJs自定义指令详解(1) - restrict ABP的Zero Sample ABP的工作单元 ABP的数据过滤器(Data Filters) ABP的事件总线和领域事件(EventBus & Domain Events) 初入Cocos2d-x 2.2 quick-cocos2d-x之testlua之VisibleRect.lua quick-cocos2d-x之testlua之mainMenu.lua
AngularJs自定义指令详解(4) - transclude
开发手游啦啦啦 · 2015-07-03 · via 博客园 - 开发手游啦啦啦

 transclude默认值为false,如果设置 transclude为true,那么相应地,必须在模板代码中加入ng-transclude指令。

先看个例子:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <script src="../lib/angular-1.3.16/angular.min.js"></script>
    <script src=""></script>
    <title></title>
    <script language="JavaScript">

        angular.module('app',[])
                .directive('myDirective',function(){
                    return{
                        template:'<div>\
                                    <h2>大标题</h2>\
                                </div>'
                    };
                });
    </script>
</head>
<body ng-app="app">
<div my-directive >
    <ul>
        <li>小标题1</li>
        <li>小标题2</li>
    </ul>
</div>
</body>
</html>

输出:

大标题

见鬼!小标题全不见了!审查元素看看:

魂淡,全丢没了!

没办法,出动transclude!看代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <script src="../lib/angular-1.3.16/angular.min.js"></script>
    <script src=""></script>
    <title></title>
    <script language="JavaScript">

        angular.module('app',[])
                .directive('myDirective',function(){
                    return{
                        template:'<div>\
                                    <h2>大标题</h2>\
                                        <span ng-transclude></span>\
                                </div>',
                        transclude:true
                    };
                });
    </script>
</head>
<body ng-app="app">
<div my-directive >
    <ul>
        <li>小标题1</li>
        <li>小标题2</li>
    </ul>
</div>
</body>
</html>

输出:

大标题

  • 小标题1
  • 小标题2

审查元素看看:

再看看这个指令嵌套的例子:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <script src="../lib/angular-1.3.16/angular.min.js"></script>
    <script src=""></script>
    <title></title>
    <script language="JavaScript">

        angular.module('app',[])
                .directive('myDirective',function(){
                    return{
                        restrict:'E',
                        template:'<div>\
                                    <h2>大标题</h2>\
                                        <span ng-transclude></span>\
                                </div>',
                        transclude:true
                    };
                })
                .directive('myDirective2',function(){
                    return{
                        restrict:'E',
                        template:'<div>\
                                    <h3>中标题</h3>\
                                        <span ng-transclude></span>\
                                </div>',
                        transclude:true
                    };
                });
    </script>
</head>
<body ng-app="app">
<my-directive>
    <my-directive2>
        <ul>
            <li>小标题1</li>
            <li>小标题2</li>
        </ul>
    </my-directive2>
</my-directive>
</body>
</html>

输出:

大标题

中标题

  • 小标题1
  • 小标题2

可以尝试把指令里的transclude:true去掉,输出肯定有问题,所以两个指令里的transclude:true都是必需的。