2017-06-27 2 views
0

Ich habe Funktion in meinem Controller, wo ich meine Daten alle aus der Datenbank abgerufen werden (id, Name, Vorname, emai, Bewertung):Eingang editieren, nachdem Sie alle Daten immer Winkel

function loadAll() { 
     UniversalService.GetAll() 
      .then(function (a) { 
       $scope.all=a; 
      }); 
    } 

dann habe ich es so drucken in html:

<div class="row comment-table" ng-repeat="item in all "> 
     <div class="col-md-1"> 
      <img ng-src="http://www.gravatar.com/avatar/{{hash[$index]}}" alt="Description" /> 
     </div> 

     <div class="col-md-9"> 
       <p>Review posted by: {{item.name}}</p>   
       <p>{{item.review}}</p> 
       <span uib-rating ng-model="rate" max=5 on-hover="hoveringOver(value)" on-leave="overStar = null" titles="['one','two','three']" aria-labelledby="default-rating"></span> 
       <span class="label" ng-class="{'label-warning': percent<30, 'label-info': percent>=30 && percent<70, 'label-success': percent>=70}" ng-show="overStar && !isReadonly">{{percent}}%</span> 
     </div> 



    </div> 

Jetzt fügte ich Bearbeiten und Löschen von Schaltflächen für jede Überprüfung hinzu. Aber ich bin mir nicht sicher, wie man spezifische Überprüfung bearbeiten kann, weil ich diese Werte innerhalb der Eingänge haben muss und wie man sie löscht. Ist es möglich, wenn ich meine Werte mit loadAll() ausgedruckt habe?

+0

Sie eine isolierte bearbeiten und Button mit allen Daten der ng-repeat zugeordnet löschen müssen und wenn Sie auf der Schaltfläche bestimmte Schaltfläche zum Bearbeiten/Löschen, ein Popup mit den entsprechenden Eingabefeldern anzeigen, die bereits mit dem Wert des ausgewählten Elements ausgefüllt sind. –

Antwort

1

Mit der $index.

In Ihrem HTML:

<div class="row comment-table" ng-repeat="item in all "> 
    <div class="col-md-1"> 
     <img ng-src="http://www.gravatar.com/avatar/{{hash[$index]}}" alt="Description" /> 
    </div> 

    <div class="col-md-9"> 
     <p>Review posted by: {{item.name}}</p>   
     <p>{{item.review}}</p> 
     <button ng-click="edit($index)">Edit</button> 
     <button ng-click="delete($index)">Delete</button> 
    </div> 
</div> 

Dann in Ihrem Controller:

$scope.edit = function(index) { 
    $scope.all[index] = // Your logic here. 
}; 

$scope.delete = function(index) { 
    $scope.all[index] = // Your logic here. 
}; 
+0

Ich denke, anstelle von '$ index' sollte ich 'item.id' übergeben, um zu wissen, welche man bearbeiten/löschen soll, oder? – user122222

+1

'$ index' ist die Position im Index des aktuellen Elements. 'item.id' könnte ein beliebiger Wert sein. Wenn Sie '$ scope.all [index]' verwenden wollen, müssen Sie '$ index' verwenden. Andernfalls müssten Sie eine "Reduzieren" -Funktion verwenden, um das aktuelle Element zu finden. –

+0

Erstaunliche Antwort, hat mir so viel geholfen! – user122222

Verwandte Themen