码迷,mamicode.com
首页 > 其他好文 > 详细

自定义指令编译步骤

时间:2015-01-31 17:50:06      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

<图为一个元素上有2个指令的情况>

把指令标签转换为dom结构,执行complie方法,compile方法返回的就是Link函数,所以如果指令配置了compile方法,就不需要再配置Link方法了,

compile方法有3个参数tElement,tAttrs,transclude,tElement是该指令标签的JQuery对象,transclude是原始数据里的内容

compile:function(tElement,tAttrs,transclude){

  tElement.append(angular.element("<div>content</div>"));//这种方式可以给该标签增加内容

  return {pre:function(scope,iElement,iAttrs,controller){},post:function(scope,iElement,iAttrs,controller){}}//这就是Link方法,它包含两个属性,pre指在指令连接到子元素之前运行该方法,post指令连接到子元素之后运行该方法

}

一般compile方法用来改变dom结构,link方法用来给该指令元素绑定事件,Link方法包含4个参数scope,iElement,iAttrs,controller

Link:function(scope,iElement,iAttrs,controller){//scope是当前指令元素的作用域

  iElement.on(‘click‘,function(){

    scope.$apply(function(){ //在控制器里改变视图模板里的内容必须用脏检查$apply方法,除非该元素用了ng-model指令绑定了数据

        scope.user.name=‘new name‘;

    })

  })

}

自定义指令编译步骤

标签:

原文地址:http://www.cnblogs.com/toward-the-sun/p/4264370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!