2013-04-06 28 views
5

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>' 
    }; 
}) 
+0

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). –

Trả lời

5

Nói chung, bạn muốn sử dụng bộ điều khiển trong các chỉ thị để có thể chia sẻ chúng giữa chỉ thị, trên một phần tử. Nó cho phép các chỉ thị để giao tiếp giữa chúng một cách dễ dàng.

Xem ở đây cho một lời giải thích vĩ đại của cách làm việc này: http://egghead.io/video/angularjs-directive-to-directive-communication/

+0

Cảm ơn, video này rõ ràng là đang khai sáng. Một điều mạnh mẽ hơn đã học được về AngularJS. Hầu hết các khuôn khổ JS tuyệt vời, thích nó! – kfis

+0

@kfis toàn bộ chuỗi là tuyệt vời, đã làm tôi rất nhiều! –

Các vấn đề liên quan