2017-09-16 1 views
0

Ich habe mehrere Frage Threads von Menschen mit einem ähnlichen Problem gelesen, aber sie haben mein Problem nicht gelöst.Ng-repeat nicht aktualisieren Ansicht

Dies ist der vollständige Code (gewählten Art der CSS-Teil:

<script>          

    var app = angular.module("game", []); 
    app.controller("controlematrix",function($scope) 
     { 
      $scope.undo = []; 
      $scope.matriz = [ 2,2,2,2,2,2,2 
          ,2,2,2,0,0,0,2 
          ,2,3,0,0,0,0,2 
          ,2,0,0,0,0,0,2      
          ,2,3,0,0,2,0,2 
          ,2,0,0,0,0,0,2 
          ,2,2,2,2,2,2,2]; 

      $scope.posx = 5; 
      $scope.posy = 3; 

      $scope.testeshow= function(atual){     
       return (($scope.posx + $scope.posy * 7) != atual); 
      } 

      $scope.up = function() { 
       if($scope.matriz[$scope.posx + ($scope.posy-1) * 7] != 2) 
       { 
        $scope.posy--; 
       } 
      } 
      $scope.down = function() { 
       if($scope.matriz[$scope.posx + ($scope.posy+1) * 7] != 2) 
       { 
        $scope.posy++; 
       } 
      } 
      $scope.left = function() { 
       if($scope.matriz[($scope.posx-1) + $scope.posy * 7] != 2) 
       { 
        $scope.posx--; 
       } 
      } 
      $scope.right = function() { 
       if($scope.matriz[($scope.posx+1) + $scope.posy * 7] != 2) 
       { 
        $scope.posx++; 
       } 
      } 

     }); 
</script> 

<div id="everything" ng-app="game" ng-controller="controlematrix" > 
    <div id="container"> 
     <div class="item" ng-repeat= "x in matriz track by $index"> 
      <img ng-src="{{'tile' + x +'.png'}}" alt="tile" ng-show= "{{testeshow($index)}}"> 
      <img ng-src="player.png" alt="player" ng-show= "{{!testeshow($index)}}"> 
     </div> 
    </div> 
    <div id="buttonscreen"> 
     <button class="botao" ng-click="up()">UP</button> 
     <button class="botao" ng-click="down()">DOWN</button> 
     <button class="botao" ng-click="left()">LEFT</button> 
     <button class="botao" ng-click="right()">RIGHT</button> 

    </div> 

</div> 

Nach Debugging, es scheint, dass die posx und Sträußchen Werte aktualisieren wie Sie sollten aber das Bild auf dem Bildschirm bleibt gleich. Ich kann nicht scheinen, wo das Problem zu finden lem ist. Wenn jemand helfen kann, werde ich sehr dankbar sein.

Antwort

1

ändern ng-show="{{testeshow($index)}}"-ng-show="testeshow($index)". ng-show erwartet einen Ausdruck.

+1

Bitte schreiben Sie die Antwort für den Fall, wenn Ihre Antwort von anderen unterscheidet. Vielen Dank –

1

Entfernen {{}} von ng-show

<img ng-src="{{'tile' + x +'.png'}}" alt="tile" 
    ng-show= "testeshow($index)"> 
<img ng-src="player.png" alt="player" 
    ng-show= "!testeshow($index)"> 

Demo

Verwandte Themen