2016-04-08 19 views
0

番号配列の3番目の繰り返しで、顧客名を「Mary」に変更する必要があります。 Angularは双方向バインディングであるため、すべての顧客名がMaryに変更されます。添付のサンプルコードを見つけて、この問題を解決するのに役立ちますか?角度のある片方向のデータが機能しない、

<!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> 

おかげ

+1

コントローラでこの種のロジックを使用しないのはなぜですか?結果は何ですか? –

+0

ポストjsfiddleリンク。実際 –

+0

そのフォーム内のサブフォーム、私は除いています 結果は次のとおりです。 ジル - DL ジル - DL ジル - DL メアリー - DL ジル - DL返信用 –

答えて

1

あなたは

$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> 

か、あなたが$インデックスでトラックを使用して、ネストされたNG-の繰り返しを避けることができchangeCustomer関数を呼び出す必要があるかのような何かを行うことができます。

+0

感謝。 顧客と番号の配列には2つのngリピートがあります。 2番目のng-repeatで最初の配列obectを渡し、特定の条件で最初の配列オブジェクト要素を変更しようとしています。つまり、2番目の配列の4番目の反復でのみ、名前がMaryに変わる必要があります。 除外出力: ジル - DL ジル - DL ジル - DL メアリー - DL ジル - DL –

+0

あなたは名前だけで二番目の配列の第4回の反復でメアリーに変更する必要がありますサンプル で私を助けてくださいことができます。例外出力:Jill - DL Jill - DL Jill - DL Mary - DL Jill - DL –

関連する問題