angularjs学习系(3)指令的@=&

1:先说指令域scope的@

我觉得描述很费劲,直接用代码来阐述:

angularjs.html

<!doctype html>
<html ng-app='myApp'>
 <head>   

 </head>
 <body>     

 <div ng-controller="listCtrl">
    <input type="text"  ng-model="t" />
	 <kid title="{{t}}" >  //这个必须指定的,这里的title是指令里scope的@对应的,t就是控制域scope下的
	    <span>我的angularjs</span>
	</kid>
</div>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="main05.js"></script>
</body></html>

main05.js

var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
   $scope.logchore="motorola";
});

myApp.directive('kid',function(){
	return {
		'restrict':'E',
		scope:{
			title:"@"
		},
		template:'<div >{{title}}</div>'

	}
});

在输入框输入数字会绑定到指令模板的title中。

2:再说说Scope的=

angularjs.html

<!doctype html>
<html ng-app='myApp'>
 <head>   

 </head>
 <body>     

 <div ng-controller="listCtrl">
    <input type="text"  ng-model="t" />
	 <kid title="t" > //和上面相比,这个直接赋值等于scope域下的t了
	    <p>{{title}}</p>
	    <span>我的angularjs</span>
	</kid>
</div>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="main05.js"></script>
</body></html>

main05.js代码如下:

var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
   $scope.logchore="motorola";
});

myApp.directive('kid',function(){
	return {
		'restrict':'E',
		scope:{
			title:"="
		},
		template:'<div >{{title}}</div>'

	}
});

3:最后说&,这个是用来方法调用的

angularjs.html代码如下:

<!doctype html>
<html ng-app='myApp'>
 <head>   

 </head>
 <body>     

 <div ng-controller="listCtrl">
      <kid flavor="logchore()" ></kid> //先比=,函数赋值的形式,而logchore函数必须是域scope下声明的函数
</div>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="main05.js"></script>
</body></html>

main05.js代码如下:

var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
   $scope.logchore=function(){
	    alert('ok');
   };
});

myApp.directive('kid',function(){
	return {
		'restrict':'E',
		scope:{
			flavor:"&"
		},
		template:'<div ><button ng-click="flavor()"></button></div>'

	}
});

如果logchore带有参数,

angularjs.html代码如下:

<!doctype html>
<html ng-app='myApp'>
 <head>   

 </head>
 <body>     

 <div ng-controller="listCtrl">   

      <kid flavor="logchore(t)" ></kid> 

</div>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="main05.js"></script>
</body></html>

main05.js代码如下:

var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
   $scope.logchore=function(x){
	    alert(x);
   };
});

myApp.directive('kid',function(){
	return {
		'restrict':'E',
		scope:{
			flavor:"&"
		},
		template:'<div >    <input type="text"  ng-model="v" /> <button ng-click="flavor({t:v})"></button></div>'

	}
});
时间: 2024-10-31 19:41:08

angularjs学习系(3)指令的@=&的相关文章

angularjs学习笔记—事件指令

angularjs学习笔记—事件指令 小俞 4.4k 3月30日 发布 推荐 4 推荐 收藏 17 收藏,11.1k 浏览 ngClick 适用标签:所有触发条件:单击 #html <div ng-controller="LearnCtrl"> <div ng-click="click()">click me</div> <button ng-click="click()">click me<

AngularJS学习笔记(六)---指令

AngularJS四大核心特性-指令 在之前的内容中提到AngularJS的四个核心的特性是以下四点: MVC 模块化和依赖注入 双向数据绑定 指令 指令模块 在指令这个模块中主要讲述指令的使用以及原理,内容包括: 解析最简单的指令hello:匹配模式restrict 解析最简单的指令hello:template.templateUrl.$templateCache 解析最简单的指令hello:replace与transclude comile与link(操作元素.天剑CSS样式.绑定事件) 指

angularjs学习总结一(表达式、指令、模型)

一:自执行匿名函数 (function(){ /*code*/})();自执行匿名函数:常见格式:(function() { /* code */ })();解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数.作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局).各JavaScript库的代码也基本是

angularjs学习总结 详细教程(转载)

1 前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢. AngularJS是google在维护,其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏.这里便将我学习AngularJS写成文档,一方面作为自己学习路程上的记录,另一方面也给有兴趣的同学一些参考. 首先我自己也是一名学习者,会以学习者的角度来整理我的行文思路,这里可能只是些探索,有理解或是技术上的错误还请大家指出:其次我特别喜欢编写小

Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

1.下载angularjs 进入其官网下载:https://angularjs.org/?,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.7/angular.js 所有版本:https://code.angularjs.org/ 2.示例1 HelloWorld ! 新建一个helloworld.html <!doctype html> <html ng-app> <head> &

AngularJs学习总结-基本特性

现在的前端项目中基本上都会用到angularjs框架,之前并不了解这个框架,也是因为最近接手的项目,所以打算好好的学习下它.之前都是搞pc端,现在接手的是移动端的项目,移动端UI框架用的是ionic+vordova,没有用bootstrap,主要做的是ios+安卓的app界面,ionic这个框架也不太了解,也需要花时间好好熟悉下.angularjs学习小白一枚,欢迎大神指正. AngularJs是什么? 简单来说,即javascript的一个框架,通过script标签添加到网页中.即我们使用an

我的AngularJS 学习之旅

基础篇 1.Angular的 起源 2.比较Web 页面实现的几种方式 3.一些基本术语 4.Angular与其他框架的兼容性 5.总结 6.综合实例 很早之前就听朋友说起AngularJs,但由于各种原因,一直没去研究.最近正好有同事也对这个框架比较感兴趣,大家一起讨论,于是终于“名正言顺”地开始研究了. 本文的目的是记录一下自己这两周的学习点滴,算是学习笔记吧,如果对初学的朋友有一点帮助,那也算是一件好事.嘿嘿 1.Angular的 起源 关于Angular 的起源,可以追溯到2009 年的

AngularJS学习--- 动画操作 (Applying Animations) ngAnimate step 12

1.切换目录 git checkout step-12 npm start 2.效果图 这里在点击右边的缩略图时,会有一个很明显的从下向上的动画过程. 3.代码实现: step11和step12之间的代码差异:https://github.com/angular/angular-phonecat/compare/step-11...step-12 Dependencies(依赖的js库): bower.json { "name": "angular-seed", &

angularJS学习资源最全汇总

基础 官方: http://docs.angularjs.org angularjs官方网站已被墙,可看 http://www.ngnice.com/: 官方zip下载包 https://github.com/dolymood/angular-packages,已增加docs服务,输入地址即可,例如:http://blog.aijc.net/angular-packages/angular-1.3.15/docs/ jquery?ag? : http://stackoverflow.com/qu