Tôi đang cố gắng để đạt được điều khiển của cha mẹ "hộp" chỉ thị đệ quy:Làm cách nào để truy cập bộ điều khiển chỉ thị của cha mẹ bằng cách yêu cầu nó theo cách đệ quy?
<body ng-app="main">
<!-- no nesting: parent is the just body -->
<box></box>
<script type="text/javascript">
angular.module('main', [])
.directive('box', function() {
return {
restrict: 'E',
controller: function() { },
require: '?^box', // find optional PARENT "box" directive
link: function(scope, iElement, iAttrs, controller) {
// controller should be undefined, as there is no parent box
alert('Controller found: ' + (controller !== undefined));
}
};
});
</script>
</body>
tôi mong đợi biến điều khiển được undefined
trong hàm liên kết, nhưng tôi nhận được bộ điều khiển của chỉ thị hộp thực tế .
Vì vậy, câu hỏi của tôi là ... làm thế nào để đạt được quyền truy cập vào bộ điều khiển PHỤ HUYNH trong trường hợp như thế này:
<box>
<box></box>
</box>
như bạn có thể thấy, không có hộp PHỤ HUYNH trong ví dụ ban đầu của tôi, vì vậy tôi mong đợi để có được 'undefined' như tham số thứ tư đến chức năng liên kết, không phải là bộ điều khiển của chính cá thể đó – maX
Nhưng bạn đang khai báo một bộ điều khiển. Vì vậy, cha mẹ được điều khiển và trẻ em (nếu có tồn tại) kế thừa từ nó. Mục tiêu của bạn là biết liệu một chỉ thị cụ thể có phải là phụ huynh hay một đứa trẻ không? Nếu có lẽ bạn muốn xem phạm vi $ parent? – KayakDave
Thực ra tôi không muốn sử dụng phạm vi trong trường hợp cụ thể này, vì phạm vi có thể trở nên phức tạp, đặc biệt nếu bạn cần sử dụng một phạm vi riêng biệt. Ngoài ra, thực hành tốt nhất là sử dụng các bộ điều khiển và 'yêu cầu' để liên lạc chỉ thị đến chỉ thị. Quan điểm của tôi là nó hoạt động như một sự quyến rũ khi bạn yêu cầu một chỉ thị cha mẹ với một tên khác, tại sao bạn không thể thực hiện điều này một cách đệ quy. – maX