tôi có mã này:Làm thế nào để sử dụng bộ điều khiển cho hai chỉ thị?
JS:
angular.module("module")
.controller("fooController", ["$scope", function($scope) {
...
})
.directive("foo", function() {
return {
restrict: "E",
controller: "fooController",
link: function($scope, $element, $attrs) {
// Do some things with the scope of the controller here
}
}
})
.directive("bar", function() {
return {
restrict: "E",
require: "fooController",
link: function($scope, $element, $attrs) {
// Nothing yet
}
}
});
HTML:
<html>
<head>
<!-- Scripts here -->
</head>
<body ng-app="module">
<foo/>
<bar/>
</body>
</html>
Chỉ foo
công trình, nhưng chỉ thị bar
ném một lỗi: No controller: fooController
.
Làm cách nào tôi có thể sửa lỗi này trong khi vẫn duy trì cấu trúc hiện tại của mình (Bộ điều khiển không nằm trong HTML, nhưng được sử dụng bởi các chỉ thị, bar
nằm ngoài foo
và chia sẻ cùng một bộ điều khiển, trong khi cả hai đang sửa đổi phạm vi của nó)? Tôi đọc phần thảo luận here, nhưng tôi không thể hiểu cách thực hiện.
Chỉ vì tò mò, Tại sao bạn sử dụng cùng một bộ điều khiển cho cả hai chỉ thị? – callmekatootie
Tôi cần chia sẻ một số dữ liệu giữa chúng. Bạn có biết cách tốt hơn để làm điều này không? – tgkokk
Có - Dịch vụ! '$ rootScope' cũng thực hiện thủ thuật nhưng sẽ bị cau mày. http://stackoverflow.com/questions/9293423/can-one-controller-call-another-in-angularjs - đây là tất cả những gì bạn cần biết để giao tiếp giữa các bộ điều khiển. – callmekatootie