angular指令的简单案例和解释directive

app.directive("myview",function(){
	return {
		restrict:"AEMC",
		template:"<p>这是更换的后的文字!</p>",
		replace:true
	}
}); 

template:是讲标签修改的内容

replace为ture则将修改。

transclude配置项是什么意思?
如果使用的元素标签,标签内部还有内容,在template里面加上这个<h1 ng-transclude></h1>带有ng-transclude的元素,angular将替换标签内部的内容自动修改ng-transclude标签

app.directive("myview",function(){
	return {
		restrict:"AEMC",
		transclude:true,
		template:"<p>这是更换的后的文字!<h1 ng-transclude></h1></p>"
	}
}); 


2、templateUrl 配置项,页面引入templateUrl.js

就不需要讲代码写在template里面,而是改成templateUrl后面写引入的代码的模板地址。


3、templateCache 

如果模板需要多次使用,使用$templateCache接口来缓存下来

在这里提一下,模块angular有一个run成员方法,会在所有的模块加载完以后运行一次,而且此方法也只执行一次

//使用put方法将模板缓存
app.run(function($templateCache){
	$templateCache.put("myapp","<p>这是一个缓存的模板</p>");
});
//使用get方法获取缓存模板
app.directive("myApp",function(){
	return {
		restrict:"E",
		template:$templateCache.get("myapp"),
		replace:ture
	}
});


4、 compile和link

angular编译需要经过三个阶段:

(1)加载阶段,找到ng-app,确定应用范围。

(2)编译阶段,遍历DOM寻找指令,开始编译,如果发现compile,将在这个阶段调用。

(3)链接阶段,directive的link方法将在这个阶段被调用。如果需要操作DOM,也是通过这个方法调用,还可以绑定事件监听,作用域。

compile函数用来对模板自身进行转换,仅仅在编译阶段执行一次。

link函数负责在模型和视图之间进行动态关联,对于指令的每一个实力,link函数都会执行。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值