2016-12-15 7 views
0

JavaScriptオブジェクトの配列を保持するカスタムディレクティブがあります。JavaScript配列内の行/インデックスをAngularJSを使用してスワップ

オブジェクトは少し複雑で長いですが、私は私の問題を指摘して似たような表示されます。

これのJSON.stringifyは、次のように表示されます。

[ 
    { 
    "Id": 1, 
    "Name": "John Doe", 
    "EMail": "[email protected]" 
    }, 
    { 
    "Id": 2, 
    "Name": "Jim Doe", 
    "EMail": "[email protected]" 
    }, 
    { 
    "Id": 3, 
    "Name": "Jeff Doe", 
    "EMail": "[email protected]" 
    } 
] 

私は、さらに表示するng-repeatを使用していますHTML上の表形式の値。

値は、データベースから値を取得するAPI呼び出しに由来しています。

ID3のオブジェクト全体をID1のオブジェクト全体にスワップしたいので、表の表示中にId3オブジェクトの詳細が最初に表示され、ID1のオブジェクトの詳細が最後に表示され、機能が破られることはありません。

フロントエンド自体でこれを行うにはどうすればよい解決策がありますか?

答えて

1

一時変数を使用してスワップするのはどうですか?

var arr = [{"Id":1,"Name":"John Doe","EMail":"[email protected]"}, 
{"Id":2,"Name":"Jim Doe","EMail":"[email protected]"}, 
{"Id":3,"Name":"Jeff Doe","EMail":"[email protected]"}] 
var tmpObj = arr[0]; 
arr[0] = arr[2]; 
arr[2] = tmpObj; 
+0

使用し、何が最善の方法だろうそれをループ内で切り替えるには? – 221b

+1

ループ内で交換する必要がある要素のインデックスを保存するだけです(idsや名前など必要なものをチェックしてください)。そして、ループの後でスワップします。 – paulitto

+0

https://jsfiddle.net/3mL70v4q/2/私が試したものですが、何も交換していないようですが、何が欠けていますか? – 221b

0

あなたは、配列を逆にしたい場合は、オブジェクトの数が多いため、私はforループを実行しているArray.prototype.reverse()

var app = angular.module("myApp", []); 
 

 
app.controller("myController", function($scope) { 
 
    var arr = [ 
 
    { 
 
     "Id": 1, 
 
     "Name": "John Doe", 
 
     "EMail": "[email protected]" 
 
    }, 
 
    { 
 
     "Id": 2, 
 
     "Name": "Jim Doe", 
 
     "EMail": "[email protected]" 
 
    }, 
 
    { 
 
     "Id": 3, 
 
     "Name": "Jeff Doe", 
 
     "EMail": "[email protected]" 
 
    } 
 
    ]; 
 
    
 
    $scope.array = arr.reverse(); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js"></script> 
 

 
<div ng-app="myApp"> 
 
    <div ng-controller="myController"> 
 
    <div ng-repeat="item in array"> 
 
     {{item.Id}} - {{item.Name}} - {{item.EMail}} 
 
    </div> 
 
    </div> 
 
</div>

+0

いいえ、それは逆ではありません - インデックスに基づいてスワッピングする – 221b

関連する問題