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

推荐订阅源

Recent Announcements
Recent Announcements
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园_首页
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
月光博客
月光博客
小众软件
小众软件
S
SegmentFault 最新的问题
量子位
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 开发手游啦啦啦

用TypeScript开发爬虫程序 ABP导航源码分析 ABP的语言切换 AngularJs自定义指令详解(10) - 执行次序 AngularJs自定义指令详解(9) - terminal AngularJs自定义指令详解(8) - priority AngularJs自定义指令详解(7) - multiElement AngularJs自定义指令详解(6) - controller、require AngularJs自定义指令详解(5) - link AngularJs自定义指令详解(4) - transclude AngularJs自定义指令详解(3) - scope 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自定义指令详解(2) - template
开发手游啦啦啦 · 2015-07-03 · via 博客园 - 开发手游啦啦啦

一些用于定义行为的指令,可能不需要使用template参数。

当指定template参数时,其值可以是一个字符串,表示一段HTML文本,也可以是一个函数,这函数接受两个参数:tElement和tAttrs。

前者用的较为普遍,而且也好理解。后者暂不理会。

下面是一个例子,在模板中使用rootScope里定义的变量:

<!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',[])
                .run(function($rootScope){
                    $rootScope.greeting = 'World';
                })
                .directive('myDirective',function(){
                    return{
                        template:'Hello {{greeting}}!'

                    };
                });
    </script>
</head>
<body ng-app="app">
<div my-directive></div>
</body>
</html>

审查元素看看:

果然,在解析指令里的greeting变量时,AngularJs会跑到$rootScope里找。

那么,加个控制器试试看:

        angular.module('app',[])
                .run(function($rootScope){
                    $rootScope.greeting = 'World';
                })
                .controller('myController',function($scope){
                    $scope.greeting = 'AngularJs';
                })
                .directive('myDirective',function(){
                    return{
                        template:'Hello {{greeting}}!'

                    };
                });

别忘了:

<div ng-controller="myController" my-directive></div>

在浏览器中查看,输出的是:

Hello AngularJs!

可见指令使用的是控制器创建的子作用域$scope

下一篇文章会继续深入指令的作用域。