Как следует из названия, в чем разница? Контроллер должен выступать в качестве конструктора - для создания всех переменных и/или для вызова API.AngularJS - Контроллер один скомпилировал директиву
Контроллер директивы также работает до того, как DOM скомпилирован, и поэтому мне интересно, можно ли его использовать для некоторого контекста? Другими словами, эти два кода одинаковы?
Говорят, что у меня есть этот код:
<div my-div ng-controller="DivController">
Вот является Javascript:
angular
.module('myApp')
.controller('DivController', function($scope) {
$scope.value = 'initialize';
})
.directive('myDiv', function() {
return {
restrict: 'EA',
link: function(scope, element, attrs) {
// Now use $scope.value
}
}
});
// VS this code
angular
.module('myApp')
.directive('myDiv', function() {
return {
restrict: 'EA',
controller: function($scope) {
$scope.value = 'initialize';
},
link: function(scope, element, attrs) {
// Now use $scope.value
}
}
});
Роль контроллера директивы является директивой с несколькими директивами и предоставляет API для директивы. Подобно ngModel и ngModelController. Добавьте к этому 'ng-controller' создайте новую область. – Chandermani
Возможно, вам будет полезен следующий вопрос: http://stackoverflow.com/questions/19225702/angular-ngcontroller-vs-controller-constructed-within-directive –