鉴于Angular代码库的最新版本(v1.4 +),可以使用控制器在指令中做很多很棒的东西。例如。实际上使用控制器,执行控制器,绑定到控制器等等。
可以将指令范围,元素和属性DI转换为指令控制器,这使我提出问题:&#34;我是否还需要链接功能?&#34; < / p>
唯一的论点仍然是DOM操作应该只在链接函数中进行吗?
或者您是否认为链接功能已经过时了? Angular 2甚至会保持链接函数的概念吗?
请查看以下代码,其中我在链接函数或控制器对象中执行完全相同的操作:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://rawgit.com/angular/bower-angular/master/angular.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<directive-using-controller some-attr="Tralala.."></directive-using-controller>
<directive-using-link some-attr="Tralala.."></directive-using-link>
</body>
</html>
<script>
angular.module('app', []);
angular
.module('app')
.directive('directiveUsingController', directiveUsingController)
.directive('directiveUsingLink', directiveUsingLink);
function directiveUsingController() {
return {
restrict: 'E',
template: '<h1>Controller directive!</h1>',
controller: function($scope, $element, $attrs) {
$element.on('click', function() {
alert('Clicked controller directive! ' + $attrs.someAttr);
});
}
};
}
function directiveUsingLink() {
return {
restrict: 'E',
template: '<h1>Linky directive!</h1>',
link: function(scope, element, attributes) {
element.on('click', function() {
alert('Clicked linky directive! ' + attributes.someAttr);
});
}
};
}
</script>
答案 0 :(得分:0)
link
函数能够通过require
和link
函数的第四个参数访问其父级的控制器。它对于创建交互式指令非常有用。