Я все еще новичок в Angular, поэтому прошу прощения, если это глупый вопрос... У меня есть пользовательская директива, которая использует трансклюзию, и я пытаюсь понять, почему привязка данных работает, если я назначаю ng-контроллер для родительский элемент, но не тогда, когда я назначаю контроллер непосредственно на него:
Код:
angular.module('HelloWorld', [])
.controller('HelloController', function($scope) {
$scope.name = 'you'
})
.directive('hello', function() {
return {
restrict: 'E',
transclude: true,
template: '<ng-transclude />'
};
});
HTML:
<!-- why does this one work? -->
<div ng-controller="HelloController">
<hello>Hi there, {{name}}!</hello>
</div>
<!-- but not this one? -->
<hello ng-controller="HelloController">
<p> Hi there, {{name}}!</p>
</hello>
Планкер: https://plnkr.co/edit/ICztHcKU4W2EgFmy8OqQ?p=preview
Любые идеи?