首页 / ANGULAR / AngularJS学习笔记二
AngularJS学习笔记二
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AngularJS学习笔记二,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2308字,纯文字阅读大概需要4分钟。
内容图文
![AngularJS学习笔记二](/upload/InfoBanner/zyjiaocheng/1051/22ca93a6c5f846888dfcb2252a5bc90e.jpg)
指令
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>
原文:http://www.cnblogs.com/elic/p/4066240.html
内容总结
以上是互联网集市为您收集整理的AngularJS学习笔记二全部内容,希望文章能够帮你解决AngularJS学习笔记二所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。