은 내가 AngularJS와의 지침으로 분리하고 싶었다 같은 HTML 코드두 개의 사이드 바이 사이드 지시어가 AngularJS에서 서로 통신 할 수 있습니까?
<a href="#" id="someLink">
<i class="someClass"></i><span>Some span text</span>
</a>
<div id="dependsOnSomeLink">
<!-- something here -->
</div>
했다. 그 뒤에있는 논리는 div
의 내용이 기본적으로 숨겨져 있으며 a
요소를 클릭하여 표시됩니다.
angular.module('someModule', [])
.directive('prAbc', function($log) {
return {
require: 'prDef',
restrict: 'E',
template: '<a href="#" id="someLink"><i class="someClass"></i><span>Some span text</span></a>',
controller: function($scope, $element, $attrs, $transclude) {
// do the harlem share <-- here
},
link: function(scope, iElement, iAttrs, prDef, transcludeFn) {
iElement.bind('click', function() {
prDef.toggleDependentBlock();
});
}
};
})
.directive('prDef', function($log)
{
return {
restrict: 'E',
template: '<div id="dependsOnSomeLink"></div>',
controller: function($scope, $element, $attrs, $transclude) {
$scope.showDependentBlock = false;
this.toggleDependentBlock = function() {
$scope.showDependentBlock = false === $scope.showDependentBlock;
};
}
};
});
나중에는 prAbc
지침에서 호출 될 때이
<pr-abc></pr-abc>
<pr-def></pr-def>
그러나 prDef
이 정의되지 않은처럼 사용
plunked에서 제안한 매우 흥미로운 해결책입니다. 고맙습니다. 다른 제안에 대해서. 1) 나는 사건에 대해서도 생각했다. 그러나 그것이 지시어 뒤에 논리를 제압 할 것이라고 생각한다. 2) 잘 모르겠다. – Eugene
옵션 2는 [this] (http://plnkr.co/edit/5waOuKJG4RbAzfTZTG8B?p=preview)와 유사합니다. 내 즐겨 찾기가 아니지만 그래도 일을합니다. –