/ / Angularjs double ng-データを後ろから前に繰り返し表示します、なぜですか? --angularjs、html-table、a​​ngularjs-ng-repeat、double

Angularjsのダブルng-repeatデータが後ろから前へと表示されましたが、なぜですか? -angularjs、html-table、a​​ngularjs-ng-repeat、double

コードに2つの混乱した点があります。

最初の1つ、 これは私のHTMLです:

<table class="table table-hover" my-element="docu">

ダブルngリピートを使用しましたが、データは後ろから前に表示されています。これを修正する方法は?

Angularjsファイル:

これはデータです:

$scope.people = [
{"name":1,"des":"nice","age":12},
{"name":2,"des":"good","age":13}
];
..........
.directive("myElement", function () {
return {
scope: {
items: "=myElement"
},
restrict: "EAC",
template: "<tr ng-repeat="item in items" ><td ng-repeat="p in item">{{p}}</td></tr>"
};
});

結果:

12  nice    1
13  good    2

結果は次のようになります。

1   nice    12
3   good    13

二つ目、

ng-ifを使用してデータの長さを確認し、データがない場合、テーブルの本体にこの「ファイルのアップロード」が表示されましたが、この文は常にテーブルの先頭に表示されます。理由はわかりません。これを修正する方法は?

HTML:

<tbody my-element="people">
<span ng-if="people.length == 0">Upload the file</span>
</tbody>

私の結果(データがない場合):

Upload the file
Name    Des Age

結果は次のようになります。

Name    Des Age
Upload the file

リンクは私のコードです、それをチェックしてください:

http://codepen.io/AceSai/pen/ZbEExN?editors=101

回答:

回答№1は0

最初の答え

2番目のng-repeatの構文は次のようになります。 (キー、値)in obj.

基本的に、オブジェクトのキーに対して角度でng-repeatを実行すると、キーがアルファベット順に並べ替えられたため、出力が期待されません。

だからあなたが見るなら。 あなたの出力:

年齢の名前

12いい1

13良い2

それは理にかなっていますか。

これを克服するには、配列を繰り返し、object.propertyNameを使用します。

私はあなたを取得しません 2番目の質問。 HTMLの順序に問題があるのではないかと思います。 2番目の問題について詳しく説明してください。


回答№2の場合は0

オブジェクトの配列があるので、それはつまり item はオブジェクトであり、配列ではないので、なぜあなたが望む順序でそれを取得することを期待しているのか私は本当に理解していません。 ただし、実行できるのは1つだけです。 ng-repeat このような:

template: "<tr ng-repeat="item in items" ><td>{{item.name}}</td><td>{{item.des}}</td><td>{{item.age}}</td></tr>"