标准化的属性名: 因为指令的名称,如ngBind可以有很多种变形表示,如ng:bind,或者x-ng-bind,这个对象使得可以用标准的名称获取到相应的属性。
指令间通信:所有指令间共享同一个属性对象的实例,这使得指令可以通过这个属性对象通信。
支持替换式:属性中若包含替换式,那么其他指令能够读到替换式的值。
监视替换式属性:使用$observe,能监视使用了替换式的属性(比如 src="{{bar}}")。这是一种高效的,也是唯一的方法来获取变量的值。因为在链接阶段替换式还没有被替换成值前,所有变量此时是undefined。
function linkingFn(scope, elm, attrs, ctrl) { // get the attribute value console.log(attrs.ngModel); // change the attribute attrs.$set('ngModel', 'new value'); // observe changes to interpolated attribute attrs.$observe('ngModel', function(value) { console.log('ngModel has changed value to ' + value); }); }
创建组件
通常需要使用更复杂的DOM结构替换单个指令。这允许指令成为一个可以生成应用程序可重用组件的短标志。
希望你喜欢,并分享我的工作~带你走近AngularJS系列:
在 AngularJS 应用中通过 JSON 文件来设置状态
AngularJS 之 Factory vs Service vs Provider