Учитывая последние версии (v1.4 +) Угловой кодовой базы, можно сделать множество удивительных вещей внутри директив с помощью контроллеров. Например. фактически используя контроллер, делая контроллер, как, связывание с контроллером и т. д. и т. д.Угловая: Является ли директивная функция связи устаревшей?
В директивную директиву можно указать область, элемент и атрибуты директивы, что заставляет меня задавать вопрос: «Сделаю ли я даже нужна функция связи? "
Является ли единственным аргументом, что манипуляция DOM должна выполняться исключительно в функции связи?
Или вы могли бы утверждать, что функция связи устаревает? Будет ли Угловая 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>
Ah okey, поэтому функциональность, которой я отсутствовала, была связана с связью контроллера. Я все еще не слишком увлекаюсь тем фактом, что есть функция ссылок и функция контроллера, что позволяет вам делать в основном то же самое. Но я предполагаю, что мне придется признать, что я могу получить доступ к другим контроллерам директив в функции ссылок. Но почему не следует делать то же самое в контроллере? То есть, чтобы получить ссылку на другой 'require'ed директивный контроллер? Является ли это исключительно из-за проблем с жизненным циклом, и будет ли еще потребность в функции связи в Angular 2.0? – sniii