2014-03-07 3 views
0

여러 지시어에서 기능을 공유하는 가장 좋은 방법은 무엇입니까? 간단한 사용 사례 :AngularJS 아키텍처 : 지시어에서 공유 유틸리티

directive('colorInput', function() { // user inputs a hex value }) 
directive('stringInput', function() { // user inputs a string }) 

그리고 사용자가 입력에 집중할 때 나타나는 HTML 사용자 지원 풍선이 있습니다. 모듈화 및 캡슐화를 유지하는 방법이 있나요

function setBubble(input, bubble) { // position the bubble } 

: 우리는 다음과 같이 입력에 거품 상대적으로 배치하는 기능이있을 수 있습니다? 아니면 이것은 모호한 서비스 등으로 들어가야합니까? 감사!

+0

서비스는 UI에 관한 것이 아니며 DOM 조작 코드가 포함되어 있지 않습니다. 요구 사항에 따라 서비스 또는 지시문 자체를 사용해야합니다. – Chandermani

답변

1

대신 컨트롤러를 사용해야합니다. 문의 Angular Directive Guide에 전달하는 지시문 작성을 참조하십시오. 두 지시어 모두 이 필요로하는 inputGroupController라는 컨트롤러를 만듭니다. 사용자가 입력에 집중할 때마다 baseInputController.setBubble (input, bubble)을 호출하십시오. 이 Plunker 가져 가라 : http://plnkr.co/edit/cUhxYmf9b3S1dsRjQXaG?p=preview

관련 문제