2016-04-08 7 views
0

Ich muss Kundenname in der dritten Iteration des Zahlenarrays in 'Mary' umbenennen. Da die Angular 2-Wege-Bindung ist, werden alle Kundennamen in Mary geändert. Bitte finden Sie den beigefügten Beispielcode und helfen Sie mir, dieses Problem zu beheben? von $ indexAngular Einweg-Datenbingind funktioniert nicht,

<!DOCTYPE html> 
<html data-ng-app ="myApp"> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head><body data-ng-controller="myCtrl"> 
     <div > 
      <div data-ng-repeat="cust in customer" > 
       <div ng-repeat="num in numbers"> {{ cust.name }} - {{ cust.city }} 
        <div data-ng-if="num == 4" data-ng-init="changeCustomer(cust)"></div> 
       </div> 

      </div> 
     </div> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<script> 
var app = angular.module("myApp", []); 
app.controller("myCtrl", function($scope) { 
    $scope.customer = [{name: 'Jill', city : 'DL'},{name: 'Jack', city : 'KL'}]; 
    $scope.numbers = [1,2,3,4,5]; 

    $scope.changeCustomer = function(customer) { 
      customer.name = 'Mary'; 
    } 

}); 
</script> 
</body> 
</html> 

Dank

+1

Warum machen Sie nicht diese Art von Logik in Controller? Was ist das Ergebnis, das Sie wollen? –

+0

post jsfiddle link. –

+0

Es ist eigentlich eine Unterform in einer Form, Das Ergebnis i Ausnahme ist, ist: Jill - DL Jill - DL Jill - DL Mary - DL Jill - DL –

Antwort

1

Sie können können Spur etwas tun wie

$scope.customer = [{name: 'Jill', city : 'DL'},{name: 'Jack', city : 'KL'},....]; 

    $scope.customer[3].name = 'Marry' 

    <div ng-repeat="cust in customers"> {{ cust.name }} - {{ cust.city }}</div> 

oder wenn es notwendig ist, verwenden Sie die changeCustomer Funktionen aufrufen und verschachtelte ng-Wiederholung zu vermeiden.

+0

Danke für die Antwort. Wir haben zwei ng-Wiederholungen für Kunden- und Nummernfelder. Wir übergeben den ersten Array-Objekt in der zweiten ng-Wiederholung und versuchen, das erste Array-Objektelement in einer bestimmten Bedingung zu ändern. der Name sollte sich nur in der vierten Iteration des zweiten Arrays zu Mary ändern. Gestellter Ausgang: Jill - DL Jill - DL Jill - DL Mary - DL Jill - DL –

+0

könnten Sie mir bitte mit einer Probe der Name Mary helfen nur in der vierten Iteration des zweiten Feldes ändern sollte. Ausgenommener Ausgang: Jill - DL Jill - DL Jill - DL Mary - DL Jill - DL –