나는 카드 게임 앱으로 놀고 있는데 핸드 어레이에있는 각 인스턴스에 대해 카드 이미지를 보여주고 싶습니다. 간단하게하기 위해 배열이 [1,2,3,4,5]처럼 보이면 card1.png를 보여 주려고합니다. 그러나 배열이 [1,1,3,4,5]처럼 보이는 경우 이미지가 두 번 표시되기를 바랍니다. 지금까지 단 한번만 볼 수 있습니다.ng-show에서 같은 요소를 두 번 이상 표시하는 방법은 무엇입니까?
Index.html을
<div ng-repeat="hand in hands track by $index">
Player {{$index}} hand: {{ hand }}
<img src="/images/faces-one.png" ng-show="numberInArray(hand, 1)">
<img src="/images/two.png" ng-show="numberInArray(hand, 2)">
<img src="/images/three.png" ng-show="numberInArray(hand, 3)">
<img src="/images/four.png" ng-show="numberInArray(hand, 4)">
<img src="/images/five.png" ng-show="numberInArray(hand, 5)">
<img src="/images/six.png" ng-show="numberInArray(hand, 6)">
</div>
App.js
$scope.numberInArray = function(hand, num) {
var found;
found = hand.includes(num) ? true : false;
return found;
}
뷰 파일에서 이러한 종류의 계산을 수행하지 마십시오. 로직을 고칠 수 있다고해도,이 함수는 6 번 호출되기 때문에 매우 비효율적입니다! *** ** 변경이 감지 될 때마다 **. 대신 컨트롤러에서 사용할 이미지 배열을 만들고'ng-src' 또는 비슷한 것을 사용해야합니다. – Claies
즉, 여기에는 두 개의 루프가 있어야합니다. 한 손에는 손을, 두 손에는 손에 카드가 있어야합니다. – Claies
아래의 답에도 불구하고 @Claies에 동의합니다. 우리는 항상 컨트롤러에서 가능한 한 많이해야합니다. –