AngularJS学习笔记二

指令

1、restrict:指令声明四种表现形式:A(属性)、C(类)、E(元素)、M(注释),使用“restrict”来进行配置。

2、template:指令中生成的字符串html模版

3、templateUrl:模版的地址

4、replace:将原指令所在标签替换为模版内容时,是否保存原指令html,为false时则将模版中内容插入原指令标签中。

5、transclude:将原指令中间的内容移动到template中有“ng-transclude”指令所属标签位置,为true时,覆盖模版中标签,为false时,不覆盖并且原指令中间内容丢弃。

6、scope:指令的作用域,有三种作用域表示方式:

  ① scope : { innerArgs : "args" } 独立的指令作用域,不能获取到父作用域。

  ② scope : false 继承自父作用域。

  ③ scope : {

      "argument1" : "@attribute",  //将指令内部属性与作用域变量进行单向绑定

      "argument2" : "=attribute",  //将指令内部属性与作用域变量进行双向绑定

      "argument3" : "&func"    //将表达式与作用域变量进行绑定

    }

7、compile:进行dom操作与处理。

8、link:在指令内部进行元素的事件绑定与数据绑定。

9、controller:将指令中方法暴露给外部其他指令使用。

10、require:依赖于其他的指令名称,用法: require : "^otherDirective"

应用:

<div ng-app="app">
    <div ng-controller="demoCtrl">
        <hello toname="elic" hi>这是指令中原来的内容</hello>
        <div hello toname="elic">这是指令中原来的内容</div>
        <div class="hello" toname="elic">这是指令中原来的内容</div>
    </div>
</div>
<script src="~/Scripts/angular.js"></script>
<script type="text/javascript">
    var app = angular.module("app", []);
    app.directive("hello", function () {
        return {
            restrict: "ACE",
            template: ‘<div>Hello,How are you? <span ng-transclude>此内容被原指令中内容覆盖</span></div>‘,
            transclude: false,   //将原指令中间的内容嵌入到template中有“ng-transclude”指令的html中
            //为false时,丢失原指令中内容,模版中内容正常显示
            controller: function ($scope) {
                $scope.userName = "";
                this.say = function () {
                    alert("hello指令调用:" + $scope.userName);
                }
                this.setName = function (name) {
                    $scope.userName = name;
                }
            },
            link: function (scope, element, attrs) {    //参数顺序不可乱,但名称可自定义
                var userName = attrs.toname;    //标签中定义的属性为“toName”,但此处取属性也要全部使用小写
                //scope.sayHello(userName);     //调用作用域中的方法
                scope.$apply();         //第一次调用会报“$apply already in progress”错误,不知道原因……
                scope.$apply("sayHello(‘" + userName + "‘)");   //第二次调用成功

                //element为angular包装集
                element.bind("click", function () {
                    alert(userName);
                });
            }
        };
    });

    app.directive("hi", function () {
        return {
            require: "^hello",  //依赖于“hello”指令
            //通过第四个参数,自动注入“hello”指令中的controller,名字可自定义
            link: function (scope, element, attrs, helloCtrl) {
                helloCtrl.setName("demo");
                helloCtrl.say();
            }
        };
    });

    app.controller("demoCtrl", function ($scope) {
        $scope.sayHello = function (userName) {
            alert("Hello," + userName);
        }
    });
</script>
时间: 2024-10-15 04:12:12

AngularJS学习笔记二的相关文章

angularjs 学习笔记(二) ----- bootstrap框架

1.  下载新的jquery-1.11.1文件. 2.  下载新的bootstrap文件. 3.  选择流式布局的模板填充入index.html文件. 4.  将top.foot转为nginclude文件 nginclude必须使用$scope对象,因此需要设置一个全局的mainctrl来将字符串或全局变量注入$cope中. $rootScope.global =global; 直接将全局变量global赋值给$rootScope,并且之后的子$Scope会获得继承,静态定义与ctrl分开. 5

AngularJS 学习笔记二

AngularJS指令 指令 描述 讲解 ng_app 定义应用程序的根元素. 指令 ng_bind 绑定 HTML 元素到应用程序数据. 简介 ng_click 定义元素被单击时的行为. HTML 事件 ng_controller 为应用程序定义控制器对象. 控制器 ng_disabled 绑定应用程序数据到 HTML 的 disabled 属性. HTML DOM ng_init 为应用程序定义初始值. 指令 ng_model 绑定应用程序数据到 HTML 元素. 指令 ng_repeat

AngularJS学习笔记(二) 表单验证案例(ng-repeat/filter)

这一节相对来说需要理解的东西不是太多,记住了那些api就行了. 还是一个案例(同样来自miaov),一个表单验证,先上代码,然后再对对应的内容进行解释. <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Title</title> </head>

angular学习笔记(二十四)-$http(2)-设置http请求头

1. angular默认的请求头: 其中,Accept 和 X-Requested-With是$http自带的默认配置 2. 修改默认请求头: (1) 全局修改(整个模块) 使用$httpProvider依赖 var myApp = angular.module('MyApp',[]); myApp.config(function($httpProvider){ console.log($httpProvider.defaults.headers.common) //修改/操作$httpProv

AngularJs学习笔记--directive

原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directives匹配HTML并执行.这允许directive注册行为或者转换DOM结构. Angular自带一组内置的directive,对于建立Web App有很大帮助.继续扩展的话,可以在HTML定义领域特定语言(domain specific language ,DSL). 一.在HTML中引用direc

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它