2017-12-08 1 views
0

와 소자 NG-mouseenter 변화 테두리 색 I는 다트 이미지가이대전 ID와 동일한 ID

event.img = angular.element(` 
     <div class= "your-container"> 
     <img src="${getDartImage(event)}" 
       ng-mouseenter="$ctrl.clicker(${event.id})" class="dart"> 
     </div>`); 
event.img = $compile(event.img)($scope); 

I 또한 DIV가 다른 제어기에서 발생되는 고유 ID를 갖는 하나의 컨트롤러에서 생성되고있는 또한 고유 한 ID를가집니다.

<scheduled-event   
    event="event" 
    ng-repeat="event in $ctrl.adherence.events" 
    ng-mouseenter="$ctrl.clicker1($ctrl.adherence.events[$index].id)"> 
</scheduled-event> 

나는이 ID를 일치시킬 내가 하나 개의 요소에 NG-mouseeenter을 수행 할 때, 다트, 사업부 국경 말할 수 - 일치하는 아이디 변경 색상.

답변

1

ng-class의 도움으로이 작업을 수행 할 수 있습니다. 요소를 입력 할 때 mouseenter 함수를 트리거하고 선택된 ID에 플래그를 설정하고 입력 된 ID가 플래그에 설정된 ID와 동일한 지 확인하십시오.

HTML :

<scheduled-event 

    event="event" 
    ng-repeat="event in $ctrl.adherence.events" 
    ng-mouseenter="$ctrl.clicker1($ctrl.adherence.events[$index].id)" 
    ng-class="{'bd-col':$ctrl.selectedId==$ctrl.adherence.events[$index].id}"> 

</scheduled-event> 

JS :

this.clicker1=function(id){ 
    this.selectedId=id; 
} 

CSS :

.bd-col{ 
border-color: #444; 
} 
+0

내가뿐만 아니라 다트 요소의 테두리 색상을 변경할 수 있습니다 누구 다른 컨트롤러에 있습니까? –

+0

그렇습니다.하지만이 경우 두 컨트롤러에 공통된 공유 변수를 사용하거나 서비스를 사용하여 값을 설정해야합니다. 참조 https://stackoverflow.com/questions/22584342/how-to-share-the-scope-variable-of-one-controller-with-another-in-angularjs – Vivz

+0

변수를 공유하기 위해 rootScope를 사용할 수 있습니까? –