Gần đây tôi đã xem ví dụ này. Đây là lần đầu tiên tôi nhìn thấy một bộ điều khiển bên trong một chỉ thị. Đây có phải là điều bình thường để làm không. Tôi nghĩ bạn đã dự định giữ hai trong các lĩnh vực khác nhau cho testability:Tại sao bạn đặt một bộ điều khiển trong một chỉ thị với AngularJS?
myModule.directive('myComponent', function(mySharedService) {
return {
restrict: 'E',
controller: function($scope, $attrs, mySharedService) {
$scope.$on('handleBroadcast', function() {
$scope.message = 'Directive: ' + mySharedService.message;
});
},
replace: true,
template: '<input>'
};
})
Lệnh 'tabs' chỉ thị trên trang chủ kiễu góc (xem Tạo Linh kiện, tab components.js) có một bộ điều khiển để các 'chỉ thị pane' thể nhận quyền truy cập vào phạm vi $ của các tab (để biết thêm về điều này, hãy xem http://stackoverflow.com/questions/11605917/this-vs-scope-in-angularjs-controllers/14168699#14168699). Xem thêm [Sự khác biệt giữa bộ điều khiển và chức năng liên kết trong một chỉ thị] (http://stackoverflow.com/questions/12546945/difference-between-the-controller-and-link-functions-when-defining-an-angula/12570008# 12570008). –