2017-02-10 1 views
0

나는 이것에 관한 몇 가지 기사를 가지고 있지만 내 문제에 대한 적절한 해결책을 얻지 못한다. 나는Angular js로 요소의 ID를 얻는 방법

<a href="" class="noUnderline" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content = "{{helpSrv.helpMessage}}" > 
<i class="fa fa-info-circle infoCirc" ng-click="helpSrv.showPopOverInfo($event)" id="forecastAttainmentId"> </i> 
</a> 

내가 i 아이콘을 클릭합니다 때 팝 오버를 보여주고 싶은, 각도 JS 1.5 부트 스트랩 3.

내 코드처럼 사용하고 있습니다. 자, helpSrv은 Angular JS로 작성된 서비스입니다. helpMessage은 요소의 id에 의해 선택됩니다. helpSrv처럼 두 가지를 포함하는 서비스, 나는 처음으로 i 아이콘을 클릭하면

var s = this 
s.helpInfo = { 
"forecastAttainmentId": "Some text" 
} 
s.showPopOverInfo = function (event) {  
     var helpSelect = event.target.id 
     s.helpMessage = s.helpInfo[helpSelect] 
     console.log(s.helpMessage) 
} 

가 지금은 팝 오버에 {{helpSrv.helpMessage}} 보여주고있다. 다음 번에는 실제 메시지 (예 : Some text)가 표시됩니다. 나는 지연이 함수 호출로 인해 발생했다고 생각한다. 어떻게 해결할 수 있을까 ?? 또는 data-content="{{helpSrv.helpInfo['id of the element']}}"을 사용하여 Popover에 대한 메시지를 얻을 수 있도록 각도 (플러그인 없음)를 사용하여 요소의 id을 자동으로 가져 오는 방법이 있습니다.

+0

정말 'ng-lick'입니까? 잘못 입력했다면, 'ng-click'이어야합니다. – pryxen

답변

0

$("#forecastAttainmentId").click(function(){...}을 사용하여 jQuery를 사용하여 i 태그에 액세스 할 수 있습니다. 또한 Popover가 처음으로로드 될 때 데이터를 볼 수 있으려면 helpSrv.helpMessage을 초기화해야합니다.

0

AngularJs digest cycle입니다. $ timeout을 사용해보세요 :

s.showPopOverInfo = function (event) {  
    $timeout(function(){ 
     var helpSelect = event.target.id; // Always end lines with a semicolon 
     s.helpMessage = s.helpInfo[helpSelect]; 
     console.log(s.helpMessage); 
    }, 0); 
}; 
+0

$ timeout을 사용했습니다. 하지만 여전히 도움이되지 않습니다 – Anijit

+0

jsfiddle 또는 jsbin 등에서 예제를 만드십시오. –

관련 문제