2017-06-10 3 views
2

LÖSUNG GEFUNDEN: Ich war nur mit einer Version von eckigen, die ng-if nicht unterstützt.ng-wenn innerhalb ng-Wiederholung funktioniert nicht

Hier ist eine vereinfachte Version meines Codes.

Zuerst mein Teil:

<div> 
    <div ng-repeat="poll in polls"> 
     <div ng-if="poll.moduleState === 'not-voted'"> 
      <!-- Template 1 --> 
      Not Voted: {{poll.name}} 
     </div> 
     <div ng-if="poll.moduleState === 'voted'"> 
      <!-- Template 2 --> 
      Voted: {{poll.name}} 
     </div> 
    </div> 
</div> 

Und mein Controller:

function ViewPollsCtrl($q, $scope, $http) { 

    $scope.polls = 
      [ 
       { 
        "name": "module1", 
        "moduleState": "not-voted" 
       }, 
       { 
        "name": "module2", 
        "moduleState": "voted" 
       } 
      ]; 
} 

Ich erwarte, dass der Ausgang

Not Voted: module1 
Voted: module2 

Aber anstatt die Ausgabe

Not Voted: module1 
Voted: module1 
Not Voted: module2 
Voted: module2 
sein

Warum? Was mache ich falsch? Liegt es an einer seltsamen Interaktion zwischen ng-if innerhalb von ng-repeat?

Edit: Hier ist ein Bild von dem, was ich sehe

Antwort

2

es mit Ihrem Code gut funktioniert.

DEMO

angular.module('myApp',[]).controller('myCtrl', function($scope){ 
 
    
 
    $scope.polls = 
 
      [ 
 
       { 
 
        "name": "module1", 
 
        "moduleState": "not-voted" 
 
       }, 
 
       { 
 
        "name": "module2", 
 
        "moduleState": "voted" 
 
       } 
 
      ]; 
 
      
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<div> 
 
    <div ng-repeat="poll in polls"> 
 
     <div ng-if="poll.moduleState === 'not-voted'"> 
 
      <!-- Template 1 --> 
 
      Not Voted: {{poll.name}} 
 
     </div> 
 
     <div ng-if="poll.moduleState === 'voted'"> 
 
      <!-- Template 2 --> 
 
      Voted: {{poll.name}} 
 
     </div> 
 
    </div> 
 
</div> 
 
</div>

+0

ich es in Js-Geige als auch getestet haben und festgestellt, dass es funktioniert, aber seltsam genug, es funktioniert nicht in meinem eigenen Programm. Könnte es etwas mit Controllern zu tun haben? Der einzige Unterschied zwischen meinem Code und deinem ist, wie der Controller deklariert wird. – Ethernetz

+0

Überprüfen Sie, ob Sie Fehler auf der Konsole haben – Sajeetharan

+0

Ich bekomme den Fehler: Fehler beim Laden der Ressource: Der Server antwortete mit einem Status von 500 (Interner Serverfehler) – Ethernetz

Verwandte Themen