angular.js - angular 的指令参数如何理解link

浏览:43日期:2023-01-07

问题描述

function link(scope, iElement, iAttrs, controller) { ... }

谁能够举个例子来说说明一些,angular的指令中attr具体是指哪里吗?

下面的attrs.data这中的data如何获取,或者设置在哪里?在<demo></demo>如何写

app.directive(’demo’,function(){return{ template: ’<p></p>’,link : function(scope, element, attrs){if($.trim(attrs.data).length>0){ }}, }})html:<demo></demo>

问题解答

回答1:

link函数的执行时机为angular编译此模板之后。4个参数:

scope 当前directive的作用域,是否独立由scope参数决定

element 当前directive的dom element 用angular.element(element)包裹以后形成jqlite/jquery对象

attrs directive对应的属性。举例的话

<demo data=’some data’></demo>

中attrs.data 就是’some data’ 是写死的,如果想绑定的话必须独立作用域。

controller 被require进来的directive所提供的方法, 如果require了多个, controller将会是一个数组。

相关文章: