ng-repeat를 사용하여 만든 버튼을 컨트롤러의 특정 함수에 매핑하려는 경우 문제가 있습니다. 나는이 같은 함수 이름 문자열을 정의하고있다 :angularJS 이벤트의 표현식을 통한 함수 호출
$scope.sections = [
{
title: 'Music',
desc: 'Some examples of electronic music I have produced using Fl Studio.',
color: '#76a86f',
icon: 'img/icon/music.png',
onClick: 'clickMusic()'
}];
기능은 다음과 같이 정의한다 :
<div ng-repeat="section in sections">
<div class="sectionThumbnail"">
<button ng-click="section.onClick">
<img ng-src="{{ section.icon }}" id="sectionnail_{{$index}}" ng-mouseover="sectionhoverIn($index)" ng-mouseleave="sectionhoverOut($index)">
</button>
<div class="sectionthumbnailInfo">
<p class="sectiontitle">{{ section.title }}</p>
{{ section.desc }}
</div>
</div>
</div>
: 다음
$scope.clickMusic = function() {
hideAll();
document.getElementById("musicContent").classList.remove("hide");
document.getElementById("musicContent").classList.add("show");
};
그리고이 같은 HTML 버튼에 기능을 매핑 할
그러나 버튼을 클릭해도 아무런 변화가 없습니다. clickMusic() 함수는 웹 페이지의 다른 버튼에 대해 동일한 기능을 사용하므로 일단 실행되면 의도 한대로 작동한다는 것을 알고 있습니다. ng-click = "clickMusic()"처럼 ng-click에서 clickMusic() 함수를 직접 참조 할 때도 작동합니다. 콘솔에서도 오류가 발생하지 않습니다.
이 방법으로 배열의 함수를 참조 할 수있는 방법이 있습니까, 아니면 반복에서 인덱스 인수를 취하여 원하는 함수에 인덱스를 매핑하는 추가 함수를 만들어야합니까?
감사합니다.
제 경우에는 완전히 정확하지 않지만 $ function.clickMusic()으로 정의되어 있습니다. 귀하의 답변을 기반으로 내 답변을 올렸지 만이 특정 사례에 맞게 답변을 수정하면 정답으로 표시됩니다. 감사합니다. –